web-dev-qa-db-ja.com

SSH:エージェントキーRSA SHA256:[ハッシュ]が不正な署名タイプを返しました

2台のマシンをDebian 9からDebian 1にアップグレードしたところ、SSHを使用してそれらに接続すると、次の警告が表示されます。

agent key RSA SHA256:[hash] returned incorrect signature type

私は以前とまったく同じ設定を使用しており、誰も文句を言っていませんでした。

正常に接続する機能に影響はありませんが、その意味と修正方法を理解したいと思います。

これはssh -vvv出力です:

debug3: sign_and_send_pubkey: RSA SHA256:[hash]
debug3: sign_and_send_pubkey: signing using rsa-sha2-512
agent key RSA SHA256:[hash] returned incorrect signature type
debug3: sign_and_send_pubkey: signing using ssh-rsa

私のSSHクライアントがハッシュアルゴリズムを使用して、SSHサーバーが望まないキーに署名していることを正しく理解していますか?それともSSHエージェントですか? SSHサーバーが文句を言わないように適切に設定する方法を教えてください。

SHA256:接頭辞とメッセージsigning using rsa-sha2-512が混同しているため、何が期待され、実際に何が使用されているのかわかりません。

私は以前とまったく同じ設定を使用しており、誰も文句を言っていませんでした。

Debian 9からDebian 10にアップグレードしました。これは「まったく同じ設定」ではありません。

私のSSHクライアントがハッシュアルゴリズムを使用して、SSHサーバーが望まないキーに署名していることを正しく理解していますか?

番号; SSHエージェントはclientが好まないハッシュアルゴリズムを使用しています。

従来、SSH鍵タイプごとに定義されたハッシュアルゴリズムは1つだけでしたが、ssh-rsaキーは、署名を作成するときに常にSHA1アルゴリズムを使用しました。 (これはデータに署名するためのものであることに注意してください–認証チャレンジ–キー自体ではありません。)

最近、SHA1が最新(またはそれに近い)になったため、RSAとSHA256およびSHA512の組み合わせが指定され、ssh-agentプロトコルがフラグフィールドで拡張され、通常とは異なるハッシュタイプを要求するようになりました。

この接続では、クライアントとサーバーがSHA512ベースの署名を代わりに使用するように交渉しています。ただし、クライアントがssh-agentに署名の作成を要求した場合、ssh-agentは新しい拡張機能を無視し、代わりにSHA1ベースの署名を返しました。通常、これは、エージェントが単純にサポートしていない更新されたプロトコルの場合に発生します。

解決策は、SSHエージェントをアップグレードすることです。 OpenSSHとPuTTYの最新バージョンには、どちらも新しいプロトコルと互換性のあるエージェントがあります。 GnuPGのgpg-agentも、v2.2.6以降でこれをサポートする必要があります。

sHA256で混乱:接頭辞とrsa-sha2-512を使用したメッセージ署名。

SHA256:接頭辞には何もないがあり、作成される署名と関係があります。これは、キーのフィンガープリントが生成された方法を示します(フィンガープリントは公開キーの直接ハッシュであり、署名ではありません)。古いクライアントは、この目的でMD5を使用していました。

フィンガープリントは情報としてのみ使用され(どのキーが使用されているかを示すため)、その外観は実際のSSH接続には影響しません。

5
user1686