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 2013年

Answers:


7

与许多其他嵌入式系统一样,OpenWrt使用dropbear作为其ssh服务器,而不是Linux系统上常见的重量级OpenSSH。较早版本的dropbear仅支持RSA和DSA密钥。在2013.62版几天前才发布)中才添加了对ECDSA的支持。

它应该很快会出现在“障碍断路器”(trunk)中;但您不会在“态度调整”中看到它。


我实际上已经在OpenWRT路由器上安装并配置了OpenSSH。这就是为什么我惊讶它不起作用的原因。
Naftuli Kay 2013年

即:我不使用dropbear,它已被卸载。
Naftuli Kay 2013年

在这种情况下,您自己(1),并且(2)显然超出了我在专业环境中期望的范围。
迈克尔·汉普顿

我想是这样。我将就此与OpenWRT联系,看看我能做什么。OpenSSH是作为OpenWRT中的软件包提供的,所以我想知道为什么这会让我自己。
Naftuli Kay 2013年


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
user9517 2013年

哦,对了,已编辑。
lzap

3
是的,这是法律原因。到目前为止,由于专利的原因,并不是每个发行商都可以启用椭圆曲线加密技术。在经过仔细的法律审查后,RedHat仅启用了一些曲线,而不是一般的ECC,但是它们启用的曲线受NIST(因此也受到了NSA)的影响。即使降低的计算能力看似不错,您也可能希望保持ECC的状态。
mirabilos 2013年

0

离开这里,因为这发生在我身上:

第1天:设置一台新计算机,我首先复制了密钥-我的密钥被复制了,并且能够正常登录。

第2天:我无法使用ed25519密钥登录。??我添加了一个RSA密钥;有用。我生成了一个新的ed25519密钥,可以工作...但是我的旧密钥却不能。WTF?

事实证明,在测试之后,我将密钥安装到root的.ssh / authorized_keys中作为备份...,却忘记了对该文件的权限进行修复。因此,openssh将我的密钥列入了黑名单,使我无法登录。修复了/root/.ssh/authorized_keys上的权限,使我能够以用户身份登录。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.