OpenSSH不接受ECDSA密钥

我刚刚用ssh-keygen生成了一个ECDSA密钥:

 ssh-keygen -t ecdsa -b 521 

然后我继续将这个密钥复制到我的服务器:

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

我已经validation我的密钥在文件中。

但是,当我尝试连接时,我的连接被拒绝:

 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). 

在服务器日志中find这个:

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

我的客户端和服务器都使用OpenSSH。 服务器的OpenSSH版本是OpenSSH 6.1,我的客户的OpenSSH版本是OpenSSH 5.9。

我怎么知道我的服务器支持哪些关键algorithm?

像许多其他embedded式系统一样,OpenWrt使用dropbear作为其ssh服务器,而不是Linux系统上常见的更重量级的OpenSSH。 老版本的dropbear只支持RSA和DSA密钥; ECDSA的支持直到版本2013.62 (刚刚刚刚发布前几天)才被添加。

它应该很快显示在障碍破碎机(树干); 但是你不会在态度调整中看到它。

ecdsa由openssh-server版本5.7支持 。 你正在运行什么版本的openssh服务器? 运行dpkg -l | grep openssh-server | awk '{print $3}' | cut -d: -f2 dpkg -l | grep openssh-server | awk '{print $3}' | cut -d: -f2 dpkg -l | grep openssh-server | awk '{print $3}' | cut -d: -f2find版本。

如果您的系统是Red Hat Enterprise Linux 6.4 (或更早版本)或Fedora 19 (或更早版本),请注意ECDSA已从此处删除。 我没有任何细节,为什么(可能是合法的原因): https : //www.mail-archive.com/[email protected]/msg00755.html