我正在尝试重新创建 ssh 服务器主机密钥。
我至少有两种方法可以做到这一点:
使用 dpkg-reconfigure
dpkg-reconfigure openssh-server
这很好用,但我无法给出密钥长度。例如,我想要 4096 作为 RSA 密钥。
使用 ssh-keygen 手动
sudo ssh-keygen -f /etc/ssh/ssh_host_rsa_key -N 'myverylongpasswordhere' -b 4096 -t rsa
这将重新创建密钥,但重新启动服务器后,我收到以下信息错误信息:
could not load host key: /etc/ssh/ssh_host_rsa_key
所以我检查了 sshd_config 文件里面有什么:
HostKey /etc/ssh/ssh_host_rsa_key
完全匹配。因此,我检查了所有密钥的所有者和权限
-rw------- 1 root root 3326 Mär 24 08:57 ssh_host_rsa_key
当我删除所有密钥并使用 重新创建它们时
dpkg-reconfigure openssh-server
,密钥变得更小并且具有与上面相同的文件权限。
问题:如何将dpkg-reconfigure
密钥长度 4096 用于 RSA?
答案1
上述答案对我都不起作用。我通过执行以下操作修复了我的 ubuntu 系统:
/usr/bin/ssh-keygen -A
答案2
sudo ssh-keygen -f /etc/ssh/ssh_host_rsa_key -N 'myverylongpasswordhere' -b 4096 -t rsa
重新创建密钥。但是,在重新启动服务器后,我收到
could not load host key: /etc/ssh/ssh_host_rsa_key
您创建了一个带有密码的主机密钥。是否有任何自定义功能可以解锁该主机密钥?如果没有,那么我认为这是可以预料到的:管理服务的脚本启动,尝试加载主机密钥,然后失败。据我所知,您不应该创建受密码保护的主机密钥。
如果你对强化 SSH 服务器感兴趣,我建议你阅读https://stribika.github.io/2015/01/04/secure-secure-shell.html该文档中用于创建主机密钥的命令是:
ssh-keygen -t rsa -b 4096 -f ssh_host_rsa_key
但在进行任何更改之前,您应该阅读整个文档。