SSH免密码登录配置

Hadoop集群中节点之间需要不断通信,节点之间的免密码登录是少不了的.
原理:
在本机生成公钥(id_rsa.pub)和私钥(id_rsa),然后将公钥存放到需要登录的服务器,以后每次登录该服务器时,会自动匹配公钥和私钥,匹配上了就直接登录,省去输入密码步骤。

1、 在(本机)客户机生成公钥和私钥:

[root@centos1 ~]# ssh-keygen -t rsa
#全部采用回车,采用默认值(即无密码)的公钥和私钥,自动存放到~/.ssh目录下
[root@centos1 ~]# cd ~/.ssh/
[root@centos1 ~]# ll
总用量 16
-rw-r--r--. 1 root root 1182 8月  15 23:04 authorized_keys
-rw-------. 1 root root 1671 8月  15 23:01 id_rsa
-rw-r--r--. 1 root root  394 8月  15 23:01 id_rsa.pub
-rw-r--r--. 1 root root 1974 8月  15 23:05 known_hosts

2、然后将id_rsa.pub复制到需要登录的服务器目录下:

使用命令将id_rsa.pub添加到服务器的authorized_keys:

[root@centos1 ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@centos2
#这里是将id_rsa.pub追加到centos2的~/.ssh/authorized_keys命令
#即centos1可以免密码登录centos2

上面这个命令可以直接在指定服务器(包括本节点)的~/.ssh目录下添加authorized_keys文件,并将id_rsa.pub内容添加进去

3、完成以上操作后,客户机即可免密码登录服务器

4、注意事项

  • 4.1、macbook 在复制id_rsa.pub这个操作中,不支持ssh-copy-id这个命令,需要手动将id_rsa.pub文件scp到服务器并追加到authorized_keys文件中。
  • 4.2、如果配置完后登录仍需要密码请检查一下问题
    • 4.2.1、 authorized_keys的权限问题,其他用户不能拥有写的权限.因为linux任务如果其他用户对这个文件有写的权限,则会存在风险 。
      [root@centos1 ~]# chmod 644 authorized_keys
      #644权限是属主用户可读可写,同组用户和其他用户可读
    • 4.2.2、 到服务器的~/.ssh目录下检查authorized_keys是否有对应客户机的信息,确认authorized_keys是追加写入而不是覆盖写入。
    • 4.2.3、 在生成公钥和私钥的时候,确认是全部回车采用默认值(即空密码),如果在生成钥匙过程中输入了密码,那么就无法达到免密码登录的效果了。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章