SSH免密码双向登录

实现原理

使用一种被称为”公私钥”认证的方式来进行ssh登录。”公私钥”认证方式简单的解释是:

首先在客户端上创建一对公私钥(公钥文件:/.ssh/id_rsa.pub;私钥文件:/.ssh/id_rsa),然后把公钥放到服务器上(~/.ssh/authorized_keys),自己保留好私钥。当ssh登录时,ssh程序会发送私钥去和服务器上的公钥做匹配。如果匹配成功就可以登录。


在A服务器生成证书

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): /root/.ssh/ropon_rsa
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/ropon_rsa.
Your public key has been saved in /root/.ssh/ropon_rsa.pub.
The key fingerprint is:

ll ~/.ssh/
total 12
-rw-r--r-- 1 root root 404 Sep 11 23:35 known_hosts
-rw------- 1 root root 1766 Sep 12 01:49 ropon_rsa
-rw-r--r-- 1 root root 396 Sep 12 01:49 ropon_rsa.pub


ropon_rsa 私钥文件,ropon_rsa.pub公钥文件


将公钥证书ropon_rsa.pub复制到B服务器/root/.ssh子目录下,同时将文件名更换为authorized_keys,此时需要输 入B服务器的root用户密码(还未建立信任关系)。建立了客户端到服务器端的信任关系后,A服务器就可以不用再输入密码,就可以从B服务器端拷贝数据。

scp -r -PSSH端口 ~/.ssh/ropon_rsa.pub x.x.x.x:/root/.ssh/authorized_keys

提示:scp: /root/.ssh/authorized_keys: No such file or directory 请先到目标服务器使用mkdir /root/.ssh命令创建目录

然后使用ssh -i ropon_rsa -pSSH端口 x.x.x.x 免密码登录

同理要实现SSH免密码双向链接,在B服务器创建证书,然后将公钥文件拷贝到A服务器/root/.ssh/authorized_keys目录

另外本地客户端比如putty、xshell 使用密钥文件登录,拷贝私钥文件ropon_rsa到本地,SSH连接时选择对应秘钥文件即可 创建时设置密码,输入对应密码然后连接。

PS: 如果链接慢,关闭DNS反查 cat /etc/ssh/sshd_config UseDNS no

设置仅使用秘钥登录 cat /etc/ssh/sshd_config PasswordAuthentication no