パスワードなしSSHは、SSHにすでにログインしている場合にのみ機能します

パスワードなしSSHは、SSHにすでにログインしている場合にのみ機能します

そこで、次のようにしてパスワードなしの SSH を設定しました。パスワードなしの SSH ログインを設定するにはどうすればよいですか?

これを設定した後は、SSHにパスワードは必要ないだろうと予想していました。問題は、SSHへの最初の接続時にパスワードを要求されるのですが、それ以降のセッションではないパスワードを要求します。

すでに sshd_config をチェックして、次の内容が含まれていることを確認しました。

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile  %h/.ssh/authorized_keys

権限が正しいことはほぼ確実です。権限が正しければ、パスワードなしの SSH はまったく機能しません。

この問題にさらに「面白さ」を加えると、コンピュータ (クライアント コンピュータまたは SSH サーバー コンピュータのいずれか) を再起動すると、時々機能することに気付きました。その後、コンピュータをシャットダウンして翌日もう一度試すと、機能しなくなります。これは完全にランダムなことかもしれませんが、私が気づいたことです。

答え1

これは暗号化されたホームでよくある問題であり、例えばユニックス、公式でもカバーされています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に証明書を持っているユーザーです。

関連情報