PubkeyAcceptedKeyTypes和ssh-dsa密钥类型


12

我正在尝试测试按键尝试的顺序。系统的用户之一正在使用DSA,因此我正在尝试对其进行测试。我得到一个Bad key types

$ ssh -vv -p 1522 jwalton@192.168.1.11
OpenSSH_7.1p1, OpenSSL 1.0.2d 9 Jul 2015
debug1: Reading configuration data /Users/jwalton/.ssh/config
/Users/jwalton/.ssh/config line 2: Bad key types 'ssh-ed25519,ecdsa-sha2-nistp256,ssh-dsa,ssh-rsa'.

我将范围缩小到ssh-dsa。根据ssh_config(5) (它实际上是的一部分sshd_config(5),但ssh_config在OpenSSH 7.0发行说明中列为新功能):

 The -Q option of ssh(1) may be used to list supported key types.

但是,我似乎无法使其正常工作:

riemann::~$ ssh -Q 
/usr/local/bin/ssh: option requires an argument -- Q
riemann::~$ ssh -Q dsa
Unsupported query "dsa"
riemann::~$ ssh -Q ssh-dsa
Unsupported query "ssh-dsa"
riemann::~$ ssh -Q ed25529
Unsupported query "ed25529"
riemann::~$ ssh -Q ssh-ed25529
Unsupported query "ssh-ed25529"
riemann::~$ ssh -Q PubkeyAcceptedKeyTypes
Unsupported query "PubkeyAcceptedKeyTypes"

如何使用该ssh -Q选项?

ssh-dsa的密钥类型是什么?

Answers:


14

阅读手册页应该可以帮助您:

 -Q cipher | cipher-auth | mac | kex | key | protocol-version

查询ssh指定版本2支持的算法。可用功能包括:(cipher支持的对称密码),cipher-auth(支持经过身份验证的加密的对称密码),mac(支持的消息完整性代码),kex(密钥交换算法),key(密钥类型)和protocol-version(支持的SSH协议版本)。

打电话ssh -Q key给您您想要的:

ssh -Q key
ssh-ed25519
ssh-ed25519-cert-v01@openssh.com
ssh-rsa
ssh-dss
ecdsa-sha2-nistp256
ecdsa-sha2-nistp384
ecdsa-sha2-nistp521
ssh-rsa-cert-v01@openssh.com
ssh-dss-cert-v01@openssh.com
ecdsa-sha2-nistp256-cert-v01@openssh.com
ecdsa-sha2-nistp384-cert-v01@openssh.com
ecdsa-sha2-nistp521-cert-v01@openssh.com

这是openssh-7.0的新功能,因此请记住,它不必在旧版本中工作。

ssh-dsa密钥类型为ssh-dss,在此版本中默认为禁用。


谢谢。您在哪个手册页中?
jww 2015年

2
“ ssh-dsa密钥类型是ssh-dss,并且在此版本中默认情况下处于禁用状态。” - 好,谢谢。有默认原因将其禁用的原因吗?DSA2具有112位的安全性(相当于2048位RSA),因此它不会像512位或768位模数那样脆弱。而且,DSS包括RSA和ECDSA,因此它明显禁用了DSA,而不是DSS。
jww 2015年

1
Fedora 23 beta的手册页中没有;但ssh -Q键确实起作用。不幸的是,现在不支持我机器上的密钥。
mikebabcock

3
@PavelŠimerda这与DNS有什么关系?您是说DSA?这正是PubkeyAcceptedKeyTypes选择的目的。如果将它添加到带有+ssh-dss值的ssh_config中,则应该能够在服务器上接受DSA密钥。在服务器上,您可以HostKeyAlgorithms按照发行说明中的​​说明使用:openssh.com/txt/release-7.0
Jakuje,2015年

1
@DavidFaure它没有解释原因,它被禁用,只是说它被禁用以及如何处理
Jakuje

0

作为参考,在unix.stackexchange.com中发布的答案帮助我们解决了该问题:

新的openssh版本(7.0+)已弃用DSA密钥,并且默认情况下不使用DSA密钥(不在服务器或客户端上)。不希望再使用这些密钥,因此,如果可以的话,我建议尽可能使用RSA密钥。

如果您确实需要使用DSA密钥,则需要使用以下命令在客户端配置中明确允许它们

PubkeyAcceptedKeyTypes + ssh-dss应该足够将该行放在〜/ .ssh / config中,因为详细消息正试图告诉您。

/unix//a/247614/39540

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.