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