OpenSSHはECDSAキーを受け入れません


9

私は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です。

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


OpenWRT 12.09姿勢調整。必要に応じてOpenSSHサーバーを再コンパイルできます。サポートされているアルゴリズムを少なくとも一覧表示する方法はありますか?
Naftuli Kay、

回答:


7

他の多くの組み込みシステムと同様に、OpenWrtは、sshサーバーとしてdropbearを使用します。Linuxシステムで一般的に見られる、より重い OpenSSHではありません。古いバージョンのdropbearは、RSAキーとDSAキーのみをサポートしています。ECDSAのサポートは、バージョン2013.62(数日前にリリースされたばかり)まで追加されませんでした。

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


OpenWRTルーターに実際にOpenSSHをインストールして構成しました。それがうまくいかないことに驚いたのはそのためです。
Naftuli Kay、

つまり、dropbearを使用していないため、アンインストールされました。
Naftuli Kay、

その場合、あなたは(1)独力で、そして(2)どうやら私がプロの環境で期待する範囲の外にいる。
Michael Hampton

そうだと思います。OpenWRTに連絡して、何ができるか見ていきます。OpenSSHはOpenWRTのパッケージとして提供されているので、なぜそれが私に任せられるのだろうと思います。
Naftuli Kay、


0

システムがRed Hat Enterprise Linux 6.4(またはそれ以前)またはFedora 19(またはそれ以前)の場合、ECDSAはそこから削除されていることに注意してください。理由はおそらくわかりません(おそらく法的な理由):https : //www.mail-archive.com/legal@lists.fedoraproject.org/msg00755.html


ECDSAはRHEL 6.5に含まれています。openssl 1.0.1の一部として、またOPがOpenWRT
12.09

そうそう、編集。
lzap 2013

3
はい、それは法的な理由でした。それでも、今日まで、すべてのディストリビューターが特許のために楕円曲線暗号を有効にしているわけではありません。RedHatは、慎重な法的検討の後、一般的にECCではなく一部の曲線のみを有効にしましたが、有効にした曲線はNIST(したがってNSA)に影響されました。計算能力の低下が一見すばらしい場合でも、ECCをクリアしたままにすることをお勧めします。
mirabilos 2013

0

これが私に起こったので、これをここに残します:

1日目:新しいマシンをセットアップして、最初にキーをコピーして、問題なくログインすることができました。

2日目:ed25519キーでログインできません。えっ?RSAキーを追加します。できます。私は新しいed25519キーを生成し、それは動作します...しかし、私の古いキーは動作しません。WTF?

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.