無密碼 SSH 僅在我已登入 SSH 時才有效

無密碼 SSH 僅在我已登入 SSH 時才有效

所以我使用以下命令設定無密碼 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 中擁有您憑證的用戶

相關內容