如何不用密碼通過SSH遠端登入linux主機

2021-10-07 04:10:36 字數 1590 閱讀 6745

本文主要參考此處.

如何不用密碼就能通過ssh遠端登入linux主機? 答案是使用sra金鑰來代替密碼.

sra是一種不對稱金鑰, 即它由乙個公鑰a和乙個私鑰b組成, 其中公鑰a是公開的, 而私鑰b只有自己知道. 如果某個人要通過加密給我們傳送一項資訊, 他就可以使用這個公鑰對這項資訊進行加密, 而只有私鑰才能對加密後的資訊進行解密 (公鑰能對原來的資訊進行加密, 但是不能對加密後的資訊進行解密), 所以我們可以安全地得到這條資訊而不用擔心它會被別人**. 

在使用ssh登入遠端主機的時候, 我們也可以事先生成rsa的乙個公鑰a和乙個私鑰b, 然後把私鑰儲存在本地, 並預設使用這個私鑰, 而將公鑰放在遠端主機的特定資料夾中. 當我們需要登入遠端主機的時候, 我們的登入請求會把我們自己的公鑰傳送給遠端主機, 之後遠端主機檢查這個公鑰是否存放在它的本地. 如果這個公鑰不存在, 則它就認為我們是乙個為授權的使用者, 因此拒絕我們的登入請求. 如果這個公鑰存在, 則它將會用公鑰對乙個隨機數進行加密, 並將這個加密後的隨機數傳送給我們, 如果我們能夠把隨機數解密出來並傳送給它, 那就說明我們掌握了這個公鑰對應的私鑰, 因此它就可以認定我們是合法的使用者, 因此完成了ssh的連線.

具體而言, 不用密碼地通過ssh登入遠端主機, 或者說使用ssh+rsa登入遠端主機的步驟如下:

1. 首先在我們本地生成rsa的一對金鑰:

ssh-keygen -t rsa
它會提示我們輸入口令和金鑰檔案的儲存位置, 這時我們只需要按"回車鍵"然後選擇預設值就行. 

2. 進入~/.ssh/, 我們可以看到我們生成的私鑰檔案和公鑰檔案, 如下圖. 其中id_rsa是私鑰檔案, id_rsa.pub是公鑰檔案.

3. 假設遠端主機的賬號為example, 它的ip位址為192.168.10.45, 賬號example的主資料夾是/home/example, 則我們只需要把我們在本地生成的公鑰檔案id_rsa.pub複製到遠端主機的/home/example/.ssh/資料夾下並命名其為authorized_keys就可以:

scp id_rsa.pub [email protected]:/home/example/.ssh/authorized_keys
注意, 這裡仍然需要輸入遠端伺服器的密碼; 根據我的試驗, 把id_rsa.pub檔案複製到遠端主機上的時候可以命名其為authorized_keys2, 但是不能將它命名成為hello, 說明遠端主機上的公鑰檔案是不能隨意命名的.

4. 最後, 在本地主機上可以直接登入遠端主機如下而不必輸入密碼:

ssh [email protected]
5. 如果要新增另一台主機的公鑰, 假設這台主機的公鑰檔案為~/id_rsa2.pub, 則我們只要執行如下操作便可:

cat ~/id_rsa2.pub >> ~/.ssh/authorized_keys

SSH不用密碼登入遠端主機

做mpi的時候,多台主機通訊,輸入密碼是很討厭的事情,這時可以用ssh不需密碼登入遠端主機。設定這個應該挺簡單,但是參考網上好幾個網頁的手把手的教程用起來都有問題,還有點複雜。這裡寫個簡單的步驟,備忘兼供參考。自己的主機 xi03,遠端主機 cancer 首先在自己的主機xi03上的終端 比如put...

如何通過ssh遠端登入github

如果你是一枚coder,但是你不知道github,那麼我覺的你就不是乙個菜鳥級別的coder,因為你壓根不是真正coder,你只是乙個code搬運工。但是你如果已經在讀這篇文章了,我覺的你已經知道github了。正是github,讓社會化程式設計成為現實。什麼是 github?github是乙個基於...

ssh登入時不用輸入密碼

1 生成ssh key。ssh keygen t rsa 執行後在.ssh 目錄下會生成id rsa 金鑰 is rsa.pub 公鑰 known hosts三個檔案 2 生成公私鑰時輸入私鑰密碼加密id rsa ssh copy id i root ssh id rsa.pub 127.0.0.1...