数日間私を悩ませる問題があります。
サーバーが3つあります。 A、B、C。
SSH経由でAからBとCにアクセスしたいです。 A、B、Cに公開鍵/authorized_keysを設定しました。
シナリオ#1:SSH(.133)を介してAからBにアクセス - 成功!シナリオ#2:SSH経由でAからC(.148)にアクセスする - 失敗、パスワード要求!
デバッグ情報を比較します。
1つの成功事例はssh-rsaキーを好むOpenSSH 5.1です。
debug3: order_hostkeyalgs: prefer hostkeyalgs: ssh-rsa-
[email protected],[email protected],ssh-rsa.
2つの失敗したケース; OpenSSH6.2で、ssh-rsaキーが好きではありません。
debug3: order_hostkeyalgs: prefer hostkeyalgs: ecdsa-sha2-nistp256
[email protected],[email protected],ecdsa-
[email protected],ecdsa-sha2-nistp256,ecdsa-
sha2-nistp384,ecdsa-sha2-nistp521
私のキーは "ssh-keygen -t rsa"コマンドで生成されたので、rsaキーであると仮定します。これが主な理由であるかどうかはわかりません。
OpenSSH(sshd)で「プライマリホストキー」を設定する方法は?
それとも他の理由でこの問題が発生した可能性がありますか?
===debug for Scenario #1 and #2 :===
See it at: diffchecker.com/tj5v3iog
(この領域ではデバッグ情報をあまり公開することはできません:()
答え1
SSHDがecdsaキーを受け入れるように設定されているようです。
RSA ではなく ECDSA キーのみを検索する理由をサーバー側で追跡するか、ECDSA キーを提供することで、クライアントで問題を解決できます。
クライアントでecdsaキーを生成して使用する手順は次のとおりです。
ssh-keygen -t ecdsa -b 256 -N '' -f ~/.ssh/id_ecdsa
ssh-copy-id -i ~/.ssh/id_ecdsa C
ssh-keygenで二重引用符の代わりに二重-N
引用符(2x)を確認してください。'