PubkeyAcceptedKeyTypes 和 ssh-dsa 密钥类型

jww*_*jww 13 linux ssh openssh

我正在尝试测试尝试键的顺序。系统的一个用户正在使用 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'.
Run Code Online (Sandbox Code Playgroud)

我把它缩小到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.
Run Code Online (Sandbox Code Playgroud)

但是,我似乎无法让它工作:

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"
Run Code Online (Sandbox Code Playgroud)

如何使用该ssh -Q选项?

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

Jak*_*uje 14

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

 -Q cipher | cipher-auth | mac | kex | key | protocol-version
Run Code Online (Sandbox Code Playgroud)

查询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
Run Code Online (Sandbox Code Playgroud)

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

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

  • @PavelŠimerda 这与 DNS 有什么关系?你是说DSA?这正是`PubkeyAcceptedKeyTypes` 选项的作用。如果你使用 `+ssh-dss` 值将它添加到你的 ssh_config 中,你应该能够接受服务器上的 DSA 密钥。在服务器上,您可以使用发行说明中所述的“HostKeyAlgorithms”:http://www.openssh.com/txt/release-7.0 (3认同)
  • *“ssh-dsa 密钥类型是 ssh-dss,在此版本中默认禁用。”* - 好的,谢谢。默认情况下禁用它是否有原因?DSA2 具有 112 位安全性(相当于 2048 位 RSA),因此它不像 512 位或 768 位模数那样脆弱/受伤。此外,DSS 包括 RSA 和 ECDSA,因此它明显禁用 DSA,而不是 DSS。 (2认同)