SSH免密登錄的步驟:
準備工作:
準備2臺機器,
192.168.78.131充當PC端,
充當Server端。
首先詢問是否記住陌生的IP。
然後他會問【要登錄端】的密碼。
此時問的是yinlei這個用戶的密碼而不是root的密碼.【ssh不指定用戶名的情況下會以當前linux登錄的用戶作爲登錄別的機器的用戶名】
原因是當前機器的用戶是yinlei,所以會問我yinlei的密碼。
切換另一個用戶:
su 用戶名
增加一個用戶:
adduser 用戶名
1.生成公私鑰:
key存儲的位置是當前用戶的.ssh下的id_rsa文件(rsa是加密方式)
- id_rsa是私鑰文件
- id_rsa.pub是公鑰文件
- known_hosts是已知的配置過的都會記錄在這裏。
2.將生成的公鑰上傳到我們需要登錄的server的
用戶/.ssh/authorized-keys
查看一下公鑰:
將內容複製,
然後到需要登錄的機器上,
沒有.ssh目錄就mkdir .ssh進行創建
然後將上面複製的內容寫入到authorized_keys中:
再查看一下該文件,第一次配置是隻有1行,這裏我有2行是因爲以前配置過。
3.ssh登錄(此時不需要輸入密碼)
在192.168.78.131PC端進行登錄:
這裏出現了權限否決[需要允許root遠程登錄]:先進入被鏈接主機,然後:
出現問題的原因:服務端SSH 服務配置了禁止root用戶登錄策略。
取消掉註釋:
但是這裏嘗試了幾次,發現在PC端非root身份登錄還是會報上述錯誤,
此問題遺留求各位大神解答。
而這裏我還是選擇使用了root身份:
這裏需要注意的是要登錄的遠程端(我這裏是阿里雲)的ssh是默認不允許非root連接,所以在PC端可以換成root身份再ssh就不會出現上面的錯誤。
下次ssh就可以不用輸入密碼了。
ssh還可以指定用戶名登錄:,比如以root身份進行登錄
生成的id_rsa私鑰會在這次ssh請求的時候被攜帶傳到要登錄的端。如果該私鑰文件不在默認位置下,可以指定自定義該私鑰的位置,通過 -i 指定其他路徑。