天天看點

SSH免密遠端登入的配置與實作

一、軟體環境

作業系統:CentOS Linux release 7.4.1708 (Core)

SSH版本

[root@Geeklp201 ~]# ssh -V

OpenSSH_7.4p1, OpenSSL 1.0.2k-fips  26 Jan 2017

登入服務端IP:192.168.237.201

被登入服務端IP:192.168.237.202

192.168.237.203

二、問題背景

多台網絡可達的伺服器之間實作免密登入。本例中,以192.168.237.201為登入端,在本台機器上通過SSH免輸密碼登入遠端被登入端的192.168.237.202和192.168.237.203。

三、實作過程

1、把目前工作目錄切換到使用者目錄。

[root@Geeklp201 ~]# cd ~

2、看一下目前目錄有沒有.ssh子目錄。

[root@Geeklp201 ~]# ls -al

3、沒有.ssh子目錄,建立該目錄或者使用ssh登入一下任意一台伺服器,ssh登入時(無論登入成功與否)會自動建立該目錄。也可以直接跳過此步執行第4步,執行第四步的時候也會自動建立.ssh目錄,ssh-keygen生成的公鑰及私鑰放入該目錄下。這一步也可以說是畫蛇添足。

mkdir .ssh或者ssh

[email protected]

4、生成相關私鑰與公鑰。

[root@Geeklp201 ~]# ssh-keygen -b 4096 -t rsa -C [email protected]

指令執行完成之後,在目前目錄會生成id_rsa和id_rsa.pub兩個key檔案。參數b指定key的長度,本例中指定的長度為4096。參數t指定加密算法,本例中使用的RSA加密算法。參數C可是郵件位址或域名等,會被添加到key的尾部,以示區分。

5、把生成的公鑰分發到需要登入的伺服器(被登入端)上。

[root@Geeklp201 .ssh]#ssh-copy-id -i id_rsa.pub [email protected]

[root@Geeklp201 .ssh]#ssh-copy-id -i id_rsa.pub [email protected]

按照提示分别輸入被登入服務端的密碼即可。

6、登入驗證。從192.168.237.201登入192.168.237.202和192.168.237.203。

[root@Geeklp201 .ssh]# ssh [email protected]

[root@Geeklp201 .ssh]# ssh [email protected]

或者

[root@Geeklp201 .ssh]# ssh 192.168.237.202

[root@Geeklp201 .ssh]# ssh 192.168.237.203

登入成功,免密登入成功實作。

四、注意事項

1、公鑰在向被登入端分發完成後在登入端可删除,但是私鑰是不能删除的。如果删除了私鑰,那麼就需要輸入密碼才能登入成功。

2、公鑰安裝完成以後是可以解除安裝的,解除安裝指令為:ssh-keygen -R 192.168.237.203。

3、公鑰的分發過程也可以使用scp來實作,不過沒有ssh-copy-id簡單、友善,但是要注意加參數i。

繼續閱讀