OpenSSHはECDSA鍵を受け入れない

OpenSSHはECDSA鍵を受け入れない

私はECDSAキーを生成しましたssh-keygen:

ssh-keygen -t ecdsa -b 521 

次に、このキーをサーバーにコピーしました。

cat .ssh/id_ecdsa.pub | ssh myserver "tee -a .ssh/authorized_keys"

キーがファイル内にあることを確認しました。

しかし、接続しようとすると、接続が拒否されます。

ssh -v -i .ssh/id_ecdsa myserver

ログ:

OpenSSH_5.9p1 Debian-5ubuntu1.1, OpenSSL 1.0.1 14 Mar 2012
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to myserver [192.168.1.1] port 22.
debug1: Connection established.
debug1: identity file .ssh/id_ecdsa type 3
debug1: Checking blacklist file /usr/share/ssh/blacklist.ECDSA-521
debug1: Checking blacklist file /etc/ssh/blacklist.ECDSA-521
debug1: identity file .ssh/id_ecdsa-cert type -1
debug1: Remote protocol version 2.0, remote software version OpenSSH_6.1
debug1: match: OpenSSH_6.1 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_5.9p1 Debian-5ubuntu1.1
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5 none
debug1: kex: client->server aes128-ctr hmac-md5 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Server host key: RSA 10:27:b8:78:2c:e1:e3:42:8e:e3:66:c4:cc:4e:f1:c0
debug1: Host 'myserver' is known and matches the RSA host key.
debug1: Found key in /home/naftuli/.ssh/known_hosts:73
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Offering ECDSA public key: .ssh/id_ecdsa
debug1: Authentications that can continue: publickey
debug1: No more authentication methods to try.
Permission denied (publickey).

サーバー ログで次の内容が見つかりました:

auth.info sshd[13874]: userauth_pubkey: unsupported public key algorithm: ecdsa-sha2-nistp521 [preauth]

クライアントとサーバーの両方が OpenSSH を使用しています。サーバーの OpenSSH バージョンは OpenSSH 6.1 で、クライアントの OpenSSH バージョンは OpenSSH 5.9 です。

サーバーでサポートされているキーアルゴリズムを確認するにはどうすればよいでしょうか?

答え1

他の多くの組み込みシステムと同様に、OpenWrtはドロップベアsshサーバーとして、Linuxシステムでよく見られるより重いOpenSSHではなく、dropbearを使用しています。古いバージョンのdropbearはRSAとDSAキーのみをサポートしており、ECDSAのサポートはバージョン 2013.62(数日前にリリースされたばかりです)。

バリアブレーカー(トランク)ではすぐに表示されますが、姿勢調整では表示されません。

答え2

ecdsaからサポートされていますopenssh-server バージョン 5.7. 実行している openssh-server のバージョンは何ですか? を実行してdpkg -l | grep openssh-server | awk '{print $3}' | cut -d: -f2バージョンを調べてください。

答え3

あなたのシステムがレッドハットエンタープライズLinux6.4(またはそれ以上)またはフェドラ 19(またはそれより古いバージョン)、ECDSA がそこから削除されたことに注意してください。その理由の詳細はわかりません (おそらく法的な理由です)。メールアーカイブ[メールアドレス]/メッセージ00755.html

答え4

私にこんなことがあったのでここに残しておきます:

1 日目: 新しいマシンをセットアップし、キーをコピーして (最初に自分のキーをコピーして)、正常にログインできました。

2日目: ed25519キーでログインできません。あれ?RSAキーを追加すると、うまくいきました。新しいed25519キーを生成してそれ動作します... でも古いものは動作しません。一体何なの?

テスト後、キーをバックアップとしてルートの .ssh/authorized_keys にインストールし、そのファイルの権限を修正するのを忘れていたことが判明しました。そのため、openssh は私のキーをブラックリストに登録し、ログインできなくなりました。/root/.ssh/authorized_keys の権限を修正すると、ログインできるようになりました。私のユーザーとして

関連情報