ssh远程登录连接
ssh 登录方式
1. ssh密码登录:
- 客户端连接上服务器之后,服务器将自己的公钥传输给客户端
- 客户端输入服务器密码,用公钥加密之后传输给服务器
- 服务器根据自己的私钥解锁密码,如果密码正确就让客户端登录
2. 公钥认证登录:
一定要明白客户端与服务器之间的连接是通过公钥和私钥实现认证登录的。
客户端相当于A端,服务器相当于B端。A、B要实现相互认证就要通过一组公私钥。
(1)客户端即A端生成RSA公钥和私钥。
在~/.ssh文件夹下,通过ssh-keygen -t rsa命令生成一组公私钥。Id_rsa为私钥,id_rsa.pub为公钥
(2)客户端将自己的公钥存放在服务器。在生成了公私钥之后要实现AB两端的交互认证,需要A端保留自己的私钥,然后把公钥存放在B端。
在B端的.ssh目录下会有authorized_keys+know_hosts这两个文件
Authorized_keys用来存放远程免密登录的公钥。
known_hosts用来存放已知的主机公钥清单,作为A端和B端都会自动生成这个文件,每次和远端服务器进行一次免密ssh连接之后就会在这个文件的最后追加对方主机的信息(不重复)
以上通过scp将内容写进对方的文件中
命令: scp -p ~/.ssh/id_rsa.pub root@
1 | Scp: secure copy 用于linux下进行远程拷贝文件的命令。 |
两台服务器交互验证的细节如下:
(1)客户端请求连接服务器,服务器将一个随机字符串发送给客户端
(2)客户端根据自己的私钥加密这个随机字符串之后再发送给服务器
(3)服务器接受到加密后的字符串之后用公钥解密,如果正确就让客户端登录,否则拒绝。这样就不用使用密码了。
1 | 出现问题: |
出现的问题
- client与server0的连接经常中断,但是与server1等其他服务器连接很稳定。因为我使用了桥接网络,所以需要检查是不是server的ip出现了冲突。因为批量操作,一般需要将server和client的ip设置为静态ip,所以经常会出现网络内ip冲突的问题。