一、免密登錄的原理
通常我們使用 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_rsa、id_rsa.pub和authorized_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]