先说正常的添加两台linux机器之间ssh信任关系的方法:
假设主机A用来连接到主机B
1. 在主机A上执行如下命令来生成配对密钥:
ssh-keygen -t rsa
显示信息如下:
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory ‘/root/.ssh’.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
45:13:ec:31:f9:3d:25:54:7b:5f:03:40:ba:e9:76:cd root@bindiry-ubuntu
按三次回车。
这个命令生成一个密钥对:id_rsa(私钥文件)和id_rsa.pub(公钥文件)。默认被保存在~/.ssh/目录下。
2. 将 .ssh 目录中的 id_rsa.pub 文件复制到 主机B 的 ~/.ssh/ 目录中,并改名为 authorized_keys
如果已经存在authorized_keys, 则直接编辑,将主机A的~/.ssh/id_rsa.pub的内容(只有一行)添加到authorized_keys
***注意内容没有换行符!!!
好了, 信任关系建立好了. 理论上直接在A机器就可以无密码ssh到B机器了, 但是实际上, 经常发现这个会失效
99.999%的可能性是由于目标机器的文件&目录权限导致!!
1)~, ~/.ssh这两个文件夹的权限必须是755 (chmod 755 ~; chmod 755 ~/.ssh)
2)~/.ssh/authorized_keys这个文件的权限必须是600
3)如果是非root用户, 需要使用ssh登陆, 比如是work用户, 则以上两个目录&一个文件的所有者必须是work用户(可使用chown work:work authorized_keys这样的方式修改文件所属)
本文链接:https://www.poisonbian.com/post/412.html 转载需授权!