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、 在生成公鑰和私鑰的時候,確認是全部回車採用默認值(即空密碼),如果在生成鑰匙過程中輸入了密碼,那麼就無法達到免密碼登錄的效果了。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章