PubkeyAcceptedKeyTypes 和 ssh-dsa 密钥类型

PubkeyAcceptedKeyTypes 和 ssh-dsa 密钥类型

我正在尝试测试尝试按键的顺序。系统的一个用户正在使用 DSA,所以我尝试将其作为一个选项进行测试。我得到了Bad key types

$ ssh -vv -p 1522 [email protected]
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) (它实际上是的一部分,但在 OpenSSH 7.0 发行说明中将sshd_config(5)其列为新功能):ssh_config

 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 的密钥类型是什么?

答案1

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

 -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
[email protected]
ssh-rsa
ssh-dss
ecdsa-sha2-nistp256
ecdsa-sha2-nistp384
ecdsa-sha2-nistp521
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]

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

ssh-dsa密钥类型为ssh-dss,并且在此版本中默认处于禁用状态。

答案2

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

新版 openssh (7.0+) 弃用了 DSA 密钥,默认情况下不使用 DSA 密钥(服务器或客户端上均不使用)。不再推荐使用这些密钥,因此如果可以,我建议尽可能使用 RSA 密钥。

如果你确实需要使用 DSA 密钥,则需要在客户端配置中明确允许使用

PubkeyAcceptedKeyTypes +ssh-dss 应该足以将该行放入 ~/.ssh/config,因为详细消息试图告诉您。

https://unix.stackexchange.com/a/247614/39540

相关内容