主机间的相互免秘钥
1.生成密钥
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
- 运行以上命令后会在 ~/.ssh/ 目录下生成一对密钥对。
2.拷贝公钥
把自己的公钥传递给对方主机即可,这个公钥文件必须放在对方主机的~/.ssh/authorized_keys 文件中。
ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.163.102
- 第一次建立连接时会弹出一个警告,需要输入 yes 将该主机添加到当前设备的已知主机列表中。这个警告是可以忽略的.
- 查看对方主机的 ~/.ssh/authorized_keys
- 传输文件测试是否已免密
3.SSH 公钥检查
- SSH 连接远程主机时,会检查主机的公钥。如果是第一次该主机,会显示该主机的公钥摘要,提示用户是否信任该主机。
- 接受后就会将该主机的公钥追加到文件 ~/.ssh/known_hosts 中。
为了方便,关闭严格的密钥检查。
本次生效: ssh -o StrictHostKeyChecking=no root@node01
永久生效:修改 /etc/ssh/ssh_config 文件的配置,在 Host * 节点下配置以下信息:
# 严格的密钥检查 no
StrictHostKeyChecking no
-
SSH 对主机公钥的检查等级是根据 StrictHostKeyChecking 变量来配置的:
- StrictHostKeyChecking=no :最不安全的级别,当然也没有那么多烦人的提示了,相对安全的内网建议使用。如果访问的计算机的公钥在本地不存在,会自动添加到文件中(默认是 known_hosts ),并且给出一个警告
- StrictHostKeyChecking=ask :默认的级别,就是出现刚才的提示。如果连接和公钥不匹配,给出提示,并拒绝登录。
- StrictHostKeyChecking=yes :最安全的级别,如果连接和公钥不匹配,拒绝连接,不会提示详细信息。