当前位置:首页 » 存储配置 » 如何配置用密钥登录远程主机

如何配置用密钥登录远程主机

发布时间: 2023-03-24 16:10:35

linux公钥登录远程服务器

1、公私钥简介与原理

公钥和私钥都属于非对称加密算法的一个实现,这个加密算法的信息交换过程是:

非对称加密算法不能使用相同的密钥进行解密,也就是说公钥加密的只能使用私钥进行解密。

2、使用密钥进行ssh免密登录

ssh使用私钥登录大致步骤就是:主机A(客户端)创建公钥私钥,并将公钥复制到主机B(被登陆机)的指定用户下,然后主机A使用保存私钥的用户登录到主机B对应保存公钥的用户。

** 两台主机:**

ssh-keygen -t rsa
-t rsa可以省略,默认就是生成rsa类型的密钥

ssh--id -i ~/.ssh/id_rsa.pub [email protected]

** 方法二:自己创建文件进行拷贝**

② 配置ssh远程登录

本地和远程服务器都创建

在创建密钥的时候,可以定义加密类型和长度,具体可以参考ssh-keygen命令帮助。创建的过程中,首先会提示你 保存的位置 和 文件名 ,再提示你 给密钥加个密码 ,也可以直接回车不要密码。

公钥和私钥默认保存这用户目录的 /.ssh/ 文件夹下。默认情况下, id_rsa 为私钥, id_rsa.pub 为公钥。

此时 还是需要用用户名和密码登录远程Linux服务器。使用vi编辑 /etc/ssh/sshd_config 文件,先打开 PubkeyAuthentication 和 PermitRootLogin ,一般只要把这几个参数前面的#(注释符)删掉即可。

重启ssh服务

在macOS端操作以下命令,把公钥上传到远程服务器,会提示输入远程的Linux服务器的密码。

在远程Linux服务器上,操作以下命令,把公钥 追加 到服务器ssh认证文件中:

如果没有 authorized_keys 这个文件,请到 .ssh 文件夹下创建一个,并把权限设置为600。

追加好后,如果要禁止用户名密码登录,再编辑 /etc/ssh/sshd_config 文件,把 PasswordAuthentication 设置为no。

重启SSH服务(每次修改ssh配置都需要重启)

如果没有设置密钥密码,直接这终端输入 ssh root@IP 即可登录远程服务器。如果该用户下没有公钥,则会提示Permission denied。

③ 如何使用RSA密钥登陆ssh

设置root密码

1
使用原密钥登陆远程主机,默认登陆用户为ubuntu
得到远程机IP
如祥携果是aws,在EC2控制台查看一下实例的公有 IP,复制一下
cmd
ssh -i 密钥 [email protected]
2
空密码不让登陆的,所以要给root一个新密码
su
passwd root
输入两次新密码就可以了
END
修改/etc/ssh/sshd_config

修改
vi /etc/ssh/sshd_config

密码登陆

PermitRootLogin yes
StrictModes no
PermitEmptyPasswords yes
PasswordAuthentication yes

密钥登陆

HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_rsa1_key
HostKey /etc/ssh/ssh_host_dsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
HostKey /etc/ssh/ssh_host_ed25519_key
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile %h/前册.ssh/authorized_keys

如果不想一个个改,也可以复制粘贴

全文如下
#/etc/ssh/sshd_config
# Package generated configuration file
# See the sshd_config(5) manpage for details

# What ports, IPs and protocols we listen for
Port 22
# Use these options to restrict which interfaces/protocols sshd will bind to
#ListenAddress ::
#ListenAddress 0.0.0.0
Protocol 2
# HostKeys for protocol version 2
HostKey /etc/ssh/谨悔伏ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_rsa1_key
HostKey /etc/ssh/ssh_host_dsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
HostKey /etc/ssh/ssh_host_ed25519_key
#Privilege Separation is turned on for security
UsePrivilegeSeparation yes

# Lifetime and size of ephemeral version 1 server key
KeyRegenerationInterval 3600
ServerKeyBits 1024

# Logging
SyslogFacility AUTH
LogLevel INFO

# Authentication:
LoginGraceTime 120
PermitRootLogin yes
StrictModes no

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys

# Don't read the user's ~/.rhosts and ~/.shosts files
IgnoreRhosts yes
# For this to work you will also need host keys in /etc/ssh_known_hosts
RhostsRSAAuthentication no
# similar for protocol version 2
HostbasedAuthentication no
# Uncomment if you don't trust ~/.ssh/known_hosts for RhostsRSAAuthentication
#IgnoreUserKnownHosts yes

# To enable empty passwords, change to yes (NOT RECOMMENDED)
PermitEmptyPasswords yes

# Change to yes to enable challenge-response passwords (beware issues with
# some PAM moles and threads)
no

# Change to no to disable tunnelled clear text passwords
PasswordAuthentication yes

# Kerberos options
#KerberosAuthentication no
#KerberosGetAFSToken no
#KerberosOrLocalPasswd yes
#KerberosTicketCleanup yes

# GSSAPI options
#GSSAPIAuthentication no
#GSSAPICleanupCredentials yes

X11Forwarding yes
X11DisplayOffset 10
PrintMotd no
PrintLastLog yes
TCPKeepAlive yes
#UseLogin no

#MaxStartups 10:30:60
#Banner /etc/issue.net

# Allow client to pass locale environment variables
AcceptEnv LANG LC_*

Subsystem sftp /usr/lib/openssh/sftp-server

# Set this to 'yes' to enable PAM authentication, account processing,
# and session processing. If this is enabled, PAM authentication will
# be allowed through the and
# PasswordAuthentication. Depending on your PAM configuration,
# PAM authentication via may bypass
# the setting of "PermitRootLogin without-password".
# If you just want the PAM account and session checks to run without
# PAM authentication, then enable this but set PasswordAuthentication
# and to 'no'.
UsePAM yes
生成私钥
ssh-keygen -t dsa /etc/ssh/ssh_host_dsa_key
ssh-keygen -t ecdsa /etc/ssh/ssh_host_ecdsa_key
ssh-keygen -t ed25519 /etc/ssh/ssh_host_ed25519_key
ssh-keygen -t rsa /etc/ssh/ssh_host_rsa_key
ssh-keygen -t rsa1 /etc/ssh/ssh_host_rsa1_key

chmod 600 /etc/ssh/*key
复制公钥到authorized_keys

cat /etc/ssh/ssh*pub>>/home/ubuntu/.ssh/authorized_keys
cat /home/ubuntu/.ssh/authorized_keys >/root/.ssh/authorized_keys
chmod 644 /root/.ssh/authorized_keys

使用ubuntu的私钥就可以登陆了

也可以把/etc/ssh/下的key复制粘贴过来
/etc/ssh/ssh_host_dsa_key
/etc/ssh/ssh_host_ecdsa_key
/etc/ssh/ssh_host_ed25519_key
/etc/ssh/ssh_host_rsa_key

重启远程机

就可以直接用root登陆了
使用密码
ssh [email protected]

或者使用密钥

ssh -i ssh_host_dsa_key root@ip
ssh -i ssh_host_ecdsa_key root@ip
ssh -i ssh_host_ed25519_key root@ip
ssh -i ssh_host_rsa_key root@ip
ssh -i ssh_host_rsa1_key root@ip

④ SSH 之远程登录

从客户端来看,SSH提供两种级别的安全验证。

对于第二种级别,你必须知道自己密匙的口令。但是,与第一种级别相比,第二种级别不需要在网络上传送口令。第二种级别不仅加密所有传送的数据,而且“中间人”这铅乎种攻击方式也是不可能的(因为他没有用户的私人密匙)。但是整个登录的过程可能需要10秒。

将本地用户生成的公钥推送至远程服务器后,远程主机将用户的公钥,保存在登录后的用户主目录的$HOME/.ssh/authorized_keys文件中。公钥就是一段字符串,只要把它追加在authorized_keys文件的末尾就行了。
这里不使用ssh--id命令,改用下面的命令,来解释公钥的保存过程:

输入命令 ssh user@host ,然后根据提示输入远程服务器的登录密码

也可在配置文件/etc/ssh/ssh_config 中设置user和host(ip), 来简化命令, 配置如下:

配置后, 登录请求时只需输入如洞悉下命令:

使用密码登录,每次都必须输入密码,非常麻烦。好在SSH还提供了公钥登录,可以省去输入密码的步骤。
公钥登录原理 :就是用户将自己的公钥储存在远程主机上。登录的时候,远程主机会向用户发送一段随机字符串,用户用自己的私钥加密后,再发回来。远程主机用事先储存的公钥进行解密,如果解密验证成功,就证明用户是可信的,直接允许登录shell,不再要求密码。

执行上述命令首先会让你输入生成密钥的文件名: myPemKey (自定义),之后一路回车。

配置后,登录远槐颤悉程服务器时只需输入一下命令,便可直接登录成功:

修改后重启ssh服务

则远程连接时指定端口

(1) 通过iptables设置ssh端口的白名单,如下设置只允许192.168.1.0/24网段的客户机可以远程连接本机

(2) 通过/etc/hosts.allow里面进行限制(如下),/etc/hosts.deny文件不要任何内容编辑,保持默认!

例如:

修改远程服务器ssh服务配置文件/etc/ssh/sshd_config

修改远程服务器配置文件/etc/ssh/sshd_config, 如下:

如果本机系统有些账号没有设置密码,而ssh配置文件里又没做限制,那么远程通过这个空密码账号就可以登陆了,这是及其不安全的,所以一定要禁止空密码登陆。
修改远程服务器配置文件/etc/ssh/sshd_config,如下:

参考:

⑤ 如何用SSH密钥远程登录腾讯云linux服务器

1.要登录腾讯云LINUX服务器,需要用SSH软件。例如XSHELL。
2.以在东芝L315笔记本电脑为例。系统是WIN
VISTA。
3.运行XSHELL软件,点击文件,新建。
4.在主机处填写服务器IP地址。
5.点击用户身份验证,填写服务器用户名和密码。LINUX服务器默认用户名是root。填好后点击确定。
6.在会话对话框中选择刚才创建的服务器,点击连接。
7.XSHELL软件会自动进行连接,连接成功后,就成功登录到云服务器了,可以进行安装面板等相应操作。

⑥ SSH协议、openSSH远程口令及密钥登录配置

SSH(Secure Shell)协议为远程登录或其它网络服务(如:sftp、scp)提供安全保障的一种协议。它设计之初的主要目的是替代telnet远程登录协议,由于telnet协议以明文的方式在互联网上传递数据和服务器账户口令,别有用心的人很容易就可以截获得到这些数据和口令。以下是SSH详细的登录过程:

a、版本号协商阶段

服务器端启动ssh服务,并打开22号端口(也可以配置为其它端口),等待客户端链接。客户端向服务器端发起TCP连接。连接建立后,服务器端和客户端开始商议欲使用的协议版本号。如果协商成功,进入密钥和算法协商阶段,否则,断开TCP连接。

b、密钥和算法协商阶段

服务器端和客户端分别向对方发送算法协商报文,其中包括了自己支持的非对称加密算法列表、加密算法列表、消息验证码算法列表、压缩算法列表等。服务器端和客户端根据双方支持的算法得出最终使用的算法(如非对称加密算法是采用RSA,还是DSA)。协商完成后羡链,服务器端将自己的公钥发送给客户端,客户端根据公钥指纹决定是否信任此主机。选择信任此主机后,客户端使用服务器端的公钥将自己生成的会话密钥加密,发送给服务器端。以后的会话内容和口令都通过此会话密钥加密发送。通常,每过一个小时,服务器端和客户端会重新商定会话密钥,以防止会话密钥被暴力破解。

c、认证阶段

基于口令的认证:

客户端采用在算法协商阶段产生的会话密钥加密帐号、认证方法、口令,并将其传送给服务器端。服务器端收到后将其解密后,基于本地账户密码对其判断是否正首脊确。如果正确,成功建立登录连接,否则,向客户端返回认证失败报文,其中包含了可再次认证的方法列表。当登录请求次数达到可允许的尝试上限次数后,服务器端断开本次TCP连接,并限制此帐号连接请求。

基于密钥的认证:

客户端使用ssh-keygen工具在本地家目录的.ssh/目录下生成一对密钥(如:公钥id_rsa.pub、私钥id_rsa)。并将公钥追加保存到将要登录的服务器上的那个帐号家目录的.ssh/authorized_keys文件中。客户端使用算法协商阶段生成的会话密钥加密帐号、认证方法、公钥,并将其传送给服务器端。服务器端收到后将解密后的公钥与本地该帐号家目录下的authorized_keys中的公钥进兄芹孙行对比。如果内容不相同,认证失败,否则服务器端生成一段随机字符串,并先后用客户端公钥和会话密钥对其加密,发送给客户端。客户端收到后将解密后的随记字符串用会话密钥加密发送给服务器端。如果发回的字符串与服务器端起先生成的一样,则认证通过,否则,认证失败。

openssh便是SSH的一个开源实现。本文后续部分将简要介绍如何用openssh基于口令和密钥的远程登录。

示例:

# ssh [email protected]

如果是第一次登录远端主机,系统会出现以下提示:

因为协议本身无法确认远端服务器的真实性,用户自行根据提供的经SHA256算法提取的公钥指纹判断其真实性。如果确认为真,则输入帐号密码以登录服务器端。

a、首先在客户端生成一对密钥

示例:

b、将客户端公钥保存到服务器端

示例:

另外,可以不使用ssh--id命令,改用以下命令,可以更好的理解公钥的保存过程:

c、登录验证

如果仍然无法无口令登录,请检查sshd配置文件/etc/ssh/sshd_config,并将以下几行前面的注释符号取消。

⑦ 如何使用SSH密钥登录

1、配置私钥
使用的账号为test2
a、使用命令ssh-keygen
-t
rsa生成密钥,会生成一个私钥和一个公钥,在提示输入passphrase时如果不输入,直接回车,那么以后你登录服务器就不会验证密码,否则会要求你
输入passphrase,默认会将私钥放在/home/test2/.ssh/id_rsa公钥放在
/home/test2/.ssh/id_rsa.pub。
b、将公钥拷贝到远程服务器上的/test/.ssh/authorized_keys文件
[test2@test2
~]$
cd
~/.ssh
[test2@test2
.ssh]scp
id_rsa.pub
[email protected]:~/
-----------------------------------------------------------------------
[test@linux
~]mkdir
.ssh
[test@linux
~]$
cp
id_rsa.pub
.ssh/authorized_keys
注意,如果已经有authorized_keys文件的话,最好用cat
id_rsa.pub
>>
.ssh/authorized_keys

c、客户端上保留私钥,公钥留不留都可以。也就是服务器上要有公钥,客户端上要有私钥。这样就可以实现无密码验证登录了。
2、如果想要获得最大化的安全性,禁止口令登录,可以修改www.example.com上/etc/ssh/sshd_conf中的
passwordauthentication
yes
改为
passwordauthentication
no
也即只能使用密匙认证的openssh,禁止使用口令认证。
3、windows的客服端上如何使用putty登陆,需要把秘钥进行下转换才可以使用秘钥连接,步骤如下:
a.将私钥复制到windows客户端,使用puttygen导入私钥,点击“save
private
key”进行私钥的转换
b.打开putty,添入“hostname”、“port”,然后选择左面导航里的“connection”->“data”,在“auto-login
username”里添入你要登陆的用户名;在“ssh”->“auth”里导入转换后的秘钥文件。
c.单击“open”登陆。
4.另外,最好禁止root用户的登陆,修改/etc/ssh/sshd_config里的“permitrootlogin"为no,可禁止root用户登陆。
5.也可以限制某个用户或者用户组的登陆,使用"denyusers"和"denygroups"即可。

⑧ 使用 SSH-Key 登录远程服务器

ssh 提供两种级别的安全认证:

需要知道用户名和密码即可登录,该连接是加凯缺密的,但客户端不能确认目标主机是否为“伪造的”,也不能保证口令安全。

远程主机的 /etc/ssh/sshd_config 需配置:

重启 sshd 使改动生效:

需要用户持有“公钥/私钥对”,庆裤远程服务器持有公钥,本地持有私钥。

客户端向服务器发出请求。服务器收到请求之后,先在用户的主目录下找到该用户的公钥,然后对比用户发送过来的公钥。如果一致,服务器用公钥加密“质询”并发送给客户端。客户端收到“质询”后用私钥解密,再发还给服务器。认证结束。

生成 ssh-key,选加密算法(rsa、dsa),给秘钥命名(可选):

passphrase 是证书口令,以加强安全性,避免证书被恶意复制。

会在 ~.ssh 下生成 id_rsa , id_rsa.pub 两个文件,分誉孙简别是 私钥/公钥。

公钥需保存到远程服务器 ~/.ssh/authorized_keys 里,私钥由客户端本地留存。

要保证 .ssh 和 authorized_keys 都只有用户自己有写权限。否则验证无效。

简单情况下,通过手动指定私钥文件登录

觉得麻烦可以配置客户端的 /etc/ssh/ssh_config

你也可以使用 SSH Agent,下面以使用 GitHub 为场景简单介绍。

创建 ~/.ssh/config

配置完成后,在连接非默认账号的仓库时,远端地址要修改为

⑨ Xshell使用密钥方式登陆

连接远程主机,就验证身份而言,一般有两种方式,一种是通过用户密码;另一种通过公钥的迅消方式(Public Key)。

图1xshell支知闭持验证登录用户的方式

下面就使用Public Key的方式来实现连接,通过工具ssh-kengen生成密钥对。

注意: 操作之前需要ping通本机和目的主机 (如果ping不通,可能的原因是防火墙、SELinux没关闭,或者网关设置有问题等)

使用XShell,这里使用的是XShell manager 5,目的主机为CentOS7,将需要连接的远程主机称为目的主机。

[root@m01 ~]# vim /root/.ssh/authorized_keys 里面输入公钥 到时搭昌裂连接时 进行匹配

图2选择密钥文件

图3导入私钥并确定

注意:点击确定之后还要重新连接一次

图4连接成功

客户端使用私钥去验证,而远程主机使用公钥验证。

热点内容
如何把文件压缩到最小 发布:2024-05-20 02:25:03 浏览:451
javash脚本文件 发布:2024-05-20 01:43:11 浏览:829
安卓手机如何登陆刺激战场国际服 发布:2024-05-20 01:29:02 浏览:861
服务器核库怎么找 发布:2024-05-20 01:28:14 浏览:375
盐存储水分 发布:2024-05-20 01:09:03 浏览:810
中国移动用什么服务密码 发布:2024-05-20 00:52:10 浏览:696
make编译输出 发布:2024-05-20 00:37:01 浏览:68
4200存储服务器 发布:2024-05-20 00:20:35 浏览:162
解压小生活 发布:2024-05-20 00:15:03 浏览:144
粘土小游戏服务器ip 发布:2024-05-20 00:14:00 浏览:196