SSH-RSAキーを使用してログインできない

SSH-RSAキーを使用してログインできない

この記事では、この質問に対する回答を提供します。認証が拒否されました:/var/git/.ssh/authorized_keysファイルの所有権またはモードが無効です。

そこに公開されている問題が修正されました(.sshフォルダのファイルモードに関連)。

しかし、別の問題がまだ存在するので、新しい質問を作成しました。

(verboseオプションを使用して)ログインしようとすると、すべてがうまく機能しているように見えますが、最後に次のような状況が発生します。

debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /home/remi/.ssh/id_rsa
debug2: we sent a publickey packet, wait for reply
debug1: Authentications that can continue: publickey,password
debug1: Trying private key: /home/remi/.ssh/id_dsa
debug1: Trying private key: /home/remi/.ssh/id_ecdsa
debug1: Trying private key: /home/remi/.ssh/id_ed25519
debug2: we did not send a packet, disable method
debug1: Next authentication method: password

この行が私にとっては無意味に見えるので理解できません。

  • we sent a publickey packet, wait for reply
  • we did not send a packet, disable method

答え1

ユーザーのファイルモードが次の場合、この動作が発生します。ターゲットホストのディレクトリ設定が正しくありません。正しく設定する必要があるのは、.sshディレクトリのモードだけではありません!

SSH経由でホストに接続し、パスワードを入力してログインし、

chmod 755 ~
logout

その後、sshを再度実行して他のすべてのエントリを正しく設定したと仮定すると(他の回答を参照)、ログインできます。

ホームディレクトリが完全に開いたときの様子です(777)。 rsaキーは試していません。

ssh -v user@host
...
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /home/iwoolf/.ssh/id_rsa
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
debug1: Trying private key: /home/iwoolf/.ssh/id_dsa
debug1: Trying private key: /home/iwoolf/.ssh/id_ecdsa
debug1: Trying private key: /home/iwoolf/.ssh/id_ed25519
debug1: Next authentication method: password
...

次に、ホームディレクトリの権限を正しく設定します(755)。

ssh -v user@host
...
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /home/iwoolf/.ssh/id_rsa
debug1: Server accepts key: pkalg ssh-rsa blen 279
debug1: Authentication succeeded (publickey).

答え2

同様の問題がありましたが、StrictModesをyesからnoに変更したときに修正されました。開いて/etc/ssh/sshd_config追加

StrictModes no

答え3

Ubuntu 22.04(デフォルトユーザー「ubuntu」のED25519キーではなくRSAキーを使用してAWS EC2で実行)で同じエラーが発生します。 Permission denied (publickey).

その理由は、RSA-SHA1アルゴリズムがすぐに使用されなくなったためです。

だからこれを入れました。/var/log/auth.log: userauth_pubkey: key type ssh-rsa not in PubkeyAcceptedAlgorithms [preauth]

この問題に対する解決策は、上記の同じリンクに記載されています。

HostKeyAlgorithms +ssh-rsa
PubkeyAcceptedKeyTypes +ssh-rsa

/etc/ssh/sshd_configファイルからsystemctl restart ssh.service

RSA-SHA1キーを持つサーバーのSSHクライアントとしてUbuntu 22.04を使用している場合は、ファイルに同じ2行を使用する必要があります~/.ssh/config。複数のバージョンにわたって同じキーセットを使用する必要がある場合は、SSHの用途に応じて両方の場所でこれらの2行を有効にできます。これは回避策であり、技術的に安全ではないため、永続的な解決策ではなく一時的な一時的な方法と見なされるべきです。時間が経つにつれて、システムのアップデート/アップグレードを開始し、ED25519キーなどのより強力なキーに移動する必要があると思います。

答え4

サーバーがRSAキーを受け入れるように構成されていますか?

ファイルRSAAuthentication yesにあることを確認してください。sshd_config

関連情報