Linux設置SSH免密登錄

一、免密登錄的原理

通常我們使用 ssh 用戶名@ip地址 進行兩臺虛擬機的互聯,但是每次輸入命令之後,還要輸入密碼,所以就會顯得很麻煩,那麼如何實現兩臺虛擬機之間的免密互聯呢?

先了解兩條命令:

ssh-keygen:創建公鑰和密鑰,會在 /root/.ssh 下面,生成id_rsa(私鑰)與 id_rsa.pub(公鑰)兩個文件。

ssh-copy-id ip:將公鑰發送給指定虛擬機。 會在該虛擬機下的 /root/.ssh 生成authorized_keys文件(authorized_keys和id_rsa.pub是一致的)。

所謂免密登錄就是指:你發送一條指令給B虛擬機,B虛擬機返回一條指令(通過authorized_keys加密)然後返回給A虛擬機,A虛擬機通過私鑰進行解碼,如果私鑰解碼的內容與該內容相同,則建立連接,否則不建立連接。

如果要兩臺電腦進行互聯:則兩臺電腦中應該包含id_rsaid_rsa.pubauthorized_keys三個文件。

原因是:A電腦通過ssh-keygen創建公鑰和私鑰。那麼,要實現互聯的B電腦也需要A電腦的公鑰和私鑰。這樣就可以通過相同的公鑰加密,相同的私鑰解密。爲什麼,還需要authorized_keys文件呢?是因爲當A電腦去訪問B電腦的時候不是去訪問B電腦的id_rsa.pub(公鑰)文件,而是authorized_keys文件。所以要兩邊都有authorized_keys這個文件,才能進行互聯。

二、免密登錄的實現

【1】創建A的公鑰和密鑰

ssh-keygen

【2】創建B的authorized_keys,從A端發送

ssh-copy-id [email protected]

【3】創建B的私鑰,從A端發送

scp id_rsa [email protected]:/root/.ssh

補充:scp一般用於兩臺主機之間文件的傳遞,

scp 文件 主機名@主機ip:主機地址

如果傳送的是文件夾,則在傳送的文件前加上-r

【4】創建A的authorized_keys

創建A的authorized_keys,只需要自己訪問自己就可以了。反正就是authorized_keys的創建,就是通過ssh-copy-id進行創建的,內容是根據發送主機的公鑰

ssh-copy-id [email protected]

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章