新聞中心
我們通常會選擇免密登錄的方式來避免多次輸入密碼帶來的繁瑣麻煩。3. 連接遠程主機時不再需要輸入密碼$ ssh user@remote_host以上步驟都很簡單明了。
在日常使用Linux系統(tǒng)時,我們經(jīng)常需要遠程登錄到其他主機進行操作。為了方便起見,我們通常會選擇免密登錄的方式來避免多次輸入密碼帶來的繁瑣麻煩。然而,在實際應(yīng)用中,有些用戶可能會遇到一個比較棘手的問題:雖然已經(jīng)成功地分發(fā)了公鑰,但是每次登錄主機仍然需要輸入密碼。

這個問題看似簡單卻不容易解決。下面我就分享一下我的心得體會和具體操作方法。
首先,讓我們回顧一下如何通過SSH實現(xiàn)無密碼登錄:
1. 在本地生成SSH秘要對(私鑰+公鑰)
$ ssh-keygen
2. 將公鑰復(fù)制到要連接的遠程主機上
$ ssh-copy-id user@remote_host
注意:如果沒有安裝ssh-copy-id命令,則可以手動將本地生成的~/.ssh/id_rsa.pub文件內(nèi)容拷貝至目標主機上~/.ssh/authorized_keys文件中即可。
3. 連接遠程主機時不再需要輸入密碼
$ ssh user@remote_host
以上步驟都很簡單明了,并且基本能夠滿足大部分場景需求。但是,在某些情況下可能出現(xiàn)免密登錄失敗的情況,具體表現(xiàn)為:
1. 已經(jīng)成功分發(fā)公鑰,但是仍然需要輸入密碼才能登錄。
2. 在執(zhí)行ssh-copy-id時出現(xiàn)“Permission denied”等錯誤提示。
這些問題一般都與文件權(quán)限有關(guān)。通常來說,SSH會檢查用戶主目錄、~/.ssh和~/.ssh/authorized_keys文件的訪問權(quán)限,并要求其不能過于寬松(比如777)。
因此,在遇到以上兩個問題時,我們可以按照以下步驟進行排除:
1. 檢查用戶主目錄以及.ssh目錄下所有文件及其父級目錄是否屬于當(dāng)前用戶并且只有該用戶可讀寫執(zhí)行權(quán)限。如果不是,則使用chown和chmod命令修改相應(yīng)的權(quán)限即可。
$ chown -R USER:USER /home/USER
$ chmod 700 /home/USER
$ chmod 600 /home/USER/.ssh/*
2. 檢查authorized_keys文件及其父級目錄是否屬于當(dāng)前用戶并且只有該用戶可讀寫執(zhí)行權(quán)限。如果不是,則同樣使用chown和chmod命令修改相應(yīng)的權(quán)限即可。
$ chown -R USER:USER /home/USER/.ssh/
$ chmod 700 /home/USER/.ssh/
$ chmod 644 ~/.ssh/authorized_keys
3. 如果在執(zhí)行上述操作后還無法解決問題,則可能需要重新生成秘要對并重試以上步驟。同時也要注意,一些特殊字符可能會導(dǎo)致免密登錄失敗,因此在生成秘要對時最好不要使用這些字符。
總體來說,通過以上步驟基本可以解決大部分情況下的免密登錄問題。如果還有其他疑問或者遇到更棘手的問題,請參考官方文檔或者向社區(qū)尋求幫助。
文章標題:Linux免密登錄成功分發(fā)公鑰后依舊需要輸入密碼的問題解決
轉(zhuǎn)載來源:http://www.dlmjj.cn/article/dpdidoe.html


咨詢
建站咨詢
