如何在linux服务器中配置ssh互信(不需要密码即可ssh登陆)

来源:互联网 发布:mac的usb不支持 编辑:程序博客网 时间:2024/05/17 20:58

环境

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       #下面一直按回车就好 [root@192.168.3.21]#ssh-keygen -t rsa

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上执行命令就可以了
  • 3.也可以把ip地址和主机名对应关系加到 /etc/hosts里 这样直接ssh 主机名就可以了(eg:192.168.3.21 node2 加到hosts里就可以了