Puttyを使用して接続すると、SSHサーバーは「userauth_pubkey:キータイプssh-rsaがPubkeyAcceptedAlgorithms [preauth]に存在しません」を提供します。

Puttyを使用して接続すると、SSHサーバーは「userauth_pubkey:キータイプssh-rsaがPubkeyAcceptedAlgorithms [preauth]に存在しません」を提供します。

AWSに新しいUbuntuサーバーを構築しました。今何らかの理由で他のUbuntuサーバーで動作していた私の秘密鍵は彼女には機能しません。 auth.logのエラーは次のとおりです。

userauth_pubkey: key type ssh-rsa not in PubkeyAcceptedAlgorithms [preauth]

これはPuttyの問題です。 Linuxワークステーションでロギングしようとすると、どのコンピュータでも問題はありません。

私が見た違いは新しいサーバーです

Ubuntu 22.04.1 LTS実行中OpenSSH_8.9p1 Ubuntu-3, OpenSSL 3.0.2 15 Mar 2022

動作する(以前の)サーバーは次のとおりです。

Ubuntu 20.04.4 LTS(Focal Fossa)実行中OpenSSH_8.2p1 Ubuntu-4ubuntu0.4, OpenSSL 1.1.1f 31 Mar 2020

このOpenSSHバージョンに変更はありますか? Puttyを再起動するにはどうすればよいですか?

答え1

シンプルなソリューション。

にこの行を追加してください/etc/ssh/sshd_config

PubkeyAcceptedAlgorithms +ssh-rsa

その後、sshd新しい設定を適用するには、サービスを再起動します。

$ sudo systemctl restart sshd

答え2

SSHプロトコルには、さまざまな種類のキーと署名アルゴリズムがあります。鍵タイプのRSA鍵は、ssh-rsaSHA-1(この場合は署名タイプはssh-rsa)、SHA-256(署名タイプはrsa-sha2-256)、またはSHA-512(署名タイプは)を使用してrsa-sha2-512署名するために使用できます。

ここで見ることができるのは、RSAキーを使用し、ssh-rsaSHA-1と署名タイプを使用して接続していることです。残念ながら、SHA-1はもはや安全ではなく、サーバーはその署名タイプを許可しないことを伝えます。これは、セキュリティの問題を回避するために実行する正しい操作です。

いくつかの異なる方法でこの問題を解決できます。まず、単にPuTTYをアップグレードできます。最新バージョンはSHA-2署名アルゴリズム(SHA-256およびSHA-512)をサポートしているため、正常に動作します。 Mozilla、GitHub、および他の評判の良い当事者で最も推奨されるオプションと見なされるEd25519キーなどの他のSSHキーを生成することもできます。 PuTTYはこれをEdDSAキーに分類します。これは255または256ビットオプションが必要なより一般的な用語です。

PubkeyAcceptedKeyTypes含めるようにサーバー側で調整することもできます/etc/ssh/sshd_config(これを行うには、ssh-rsa他のすべてのオプションも含める必要があります)。ssh -Q sigただし、これは安全でないSHA-1署名を使用していることを意味するため、他のオプションの1つを選択する必要があるかもしれません。

答え3

コメントは十分明確ではありませんが、セキュリティを考慮する前に他の簡単な方法が機能していることを確認することをお勧めします。

サーバー側を変更する前に、Puttyを最新バージョンにアップデートしてください。私の場合、バージョン0.78ではサーバー側とキーを変更せずにこの問題を解決しました。

本当の理由が見つかりません。Putty 変更ログファイル

答え4

再充填する@bk2204の返信(RSAにはSHA-2が必要です)ジアコモカテナチ(PuTTY をバージョン 0.78 にアップグレード) PuTTY 0.75 バージョンの変更ログに説明があります。

SHA-1 の代わりに SHA-2 を使用する RSA 鍵アルゴリズムをサポートします。

したがって、0.75より前のPuTTYバージョンでは、最新のOpenSSHバージョンでデフォルトで無効になっているSHA-1でRSAを使用しようとしました。

関連情報