环境 node1:192.168.3.20 node2:192.168.3.21

用到的命令 ssh-keygen:创建公钥和密钥,会生成id_rsa和id_rsa.pub两个文件 ssh-copy-id:把本地的公钥复制到远程主机的authorized_keys文件(不会覆盖文件,是追加到文件末尾),并且会设置远程主机用户目录的.ssh和.ssh/authorized_keys权限 权限为:

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

下面开始 1.在两台机器上生成各自的key文件

[root@192.168.3.20]#ssh-keygen -t rsa -P ''      #下面一直按回车就好
[root@192.168.3.21]#ssh-keygen -t rsa -P ''

2.用ssh-copy-id 把公钥复制到远程主机上,命令也要

[root@192.168.3.20]#ssh-copy-id -i  .ssh/id_rsa.pub root@192.168.3.21
[root@192.168.3.21]#ssh-copy-id -i  .ssh/id_rsa.pub root@192.168.3.20

注:如果不是默认的端口,可以这样写

ssh-copy-id -i ~/.ssh/id_rsa.pub “-p 2022 root@192.168.3.21”

现在就可以直接登录了

[root@192.168.3.20]#ssh root@192.168.3.21 #试试吧

说明

  1. 上面是以root用户配置互信,如果想要其它用户,可以切到相应的用户下执行命令即可
  2. 如果单纯的只需要单向信任,在一台机器上执行命令就可以了,比如说node1连接node2,不用密码的话,在node1上执行命令就可以了
  3. 也可以把ip地址和主机名对应关系加到 /etc/hosts里 这样直接ssh 主机名就可以了(eg:192.168.3.21 node2 加到hosts里就可以了