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接続には影響しません。