我已经在网上做了一些研究,最好的解决方案似乎是使用更好的算法来生成新的密钥对。但现在我仍然需要使用 ssh-dss 密钥对进行内部自动化。
(我知道从openssh 7.0开始,ssh-dss默认是禁用的,我们需要显式添加
PubkeyAcceptedKeyTypes +ssh-dss到ssh配置中才能重新启用它。)
环境:
OpenSSH_8.0p1, OpenSSL 1.1.1c FIPS 28 May 2019
Linux hostname 5.1.19-300.fc30.x86_64 #1 SMP Mon Jul 22 16:32:45 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)
这是我到目前为止所做的事情的清单:
.ssh文件夹,在 中设置公钥.ssh/authorized_keys,确保它们具有 700、600 权限和正确的所有者而不是 root。/etc/ssh/sshd_config,确保我们有PubkeyAuthentication yes(通常是默认值)ssh-dss
PubkeyAcceptedKeyTypes +ssh-dss上添加/etc/ssh/sshd_configPubkeyAcceptedKeyTypes +ssh-dss在服务器端~/.ssh/config和客户端都添加但是,我仍然被要求输入密码。
/var/log/secure,我看到:
userauth_pubkey: key type ssh-dss not in PubkeyAcceptedKeyTypes
ssh -Q key:ssh-ed25519 …Run Code Online (Sandbox Code Playgroud)