原理
1、ssh 客户端向 ssh 服务器端发送连接请求
2、ssh 服务器端发送一个随机的信息
3、ssh 客户端使用本地的私钥对服务器端发送过来的信息进行加密
4、ssh 客户端向服务器端发送加密过后的信息
5、ssh 服务器端使用公钥对该信息进行解密
6、若解密之后的信息和之前发送的信息匹配,则信任客户端,否则不信任。
单向登陆
例如,服务器1免密码登陆服务器2。
1、在服务器1上执行命令ssh-keygen -t rsa,一路回车,会在/home/系统用户名/.ssh下,生成id_rsa.pub、id_rsa两个文件。cat id_rsa.pub查看一下公钥,然后复制。
2、在服务器2上touch 一个文件,文件名为authorized_keys。vim authorized_keys把复制的东西粘贴到这个文件里面。
(当然要确保服务器2的登陆账号目录下有.ssh目录)
3、将服务器2上执行命令chmod 600 authorized_keys修改权限。
4、重启sshd服务。
5、测试免密登录。
多向登陆
例如,服务器1、服务器2、服务器3之间相互免密登陆。
1、在这三台服务器上都执行命令ssh-keygen -t rsa,复制公钥。
2、然后在每台服务器上执行如上操作
3、修改每台服务器上.ssh和authorized_keys的权限(如上)
4、sshd服务添加和重启(如上)。
5、测试免密登录。
Master机器上:
powershell
# ssh-keygen -t rsa
# cat /root/.ssh/id\_rsa.pub >> /root/.ssh/authorized\_keys
# ssh-copy-id -i /root/.ssh/id\_rsa.pub root\@slave1
# ssh-copy-id -i /root/.ssh/id\_rsa.pub root\@slave2
Slave机器上(每台操作一样):配置完成ssh测试
shell
# ssh-keygen -t rsa
# cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys
# ssh-copy-id -i /root/.ssh/id_rsa.pub root@master