
所以我使用以下命令設定無密碼 ssh:如何設定無密碼 SSH 登入?
設定完成後,我希望 ssh 不需要密碼。我的問題是,在我第一次連接到 ssh 時,它會要求我輸入密碼,但除此之外的其他會話將不是詢問密碼。
我已經檢查了我的 sshd_config 以確保它包含:
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys
很確定我的權限是正確的,因為如果不是,那麼無密碼 ssh 根本無法運作。
為了給這個問題添加更多“樂趣”,我注意到當我重新啟動電腦(無論是客戶端電腦還是 ssh 伺服器電腦)時,有時它會起作用。然後當我關閉計算機並在第二天再次嘗試時,它不再工作了。也許這完全是隨機的,但這是我注意到的。
答案1
這是加密家庭的常見問題,並已多次得到解答,例如Unix,但即使在官方中也有涵蓋Ubuntu 文件。
這可能是由於您的主目錄(以及金鑰)在登入期間無法存取。這可能是由於您的主目錄在登入後從網路磁碟機(在共用系統上)安裝或您的主目錄被加密(通常是工作站的安裝)造成的。
解決這個問題很複雜,但我會看看一些討論。解決方案是將
AuthorizedKeysFile
金鑰移至其他可存取的位置或我們的金鑰全域儲存 (/etc/security/authorized_keys
),或某種SSO 管理系統(IPA、LDAP),該系統將從目錄伺服器取得金鑰(是的,可以是本地的) )。取決於您對目標系統的控製程度。也許最好的解決方案是將密鑰儲存在其他位置,並更改以下值
sshd_config
:AuthorizedKeysFile /etc/ssh/%u/authorized_keys
無論如何,如果您要移動您的authorized_keys
,請確保他們具有適當的權限並考慮到以下事實:如果您使用公鑰登錄,您將無法訪問您的主目錄(它是透過您的密碼加密的!),除非你改變了它的加密方式。
答案2
如果憑證複製正確,那麼它應該適用於格式如下的連接:
ssh hostname\ip -l username
其中 username 是在 .ssh/authorized_keys 中擁有您憑證的用戶