我正在尝试重新创建 ssh-server 主机密钥。
我至少有两种方法可以做到这一点:
使用 dpkg-reconfigure
dpkg-reconfigure openssh-server
Run Code Online (Sandbox Code Playgroud)
这工作正常,但我不能给出密钥长度。例如,我想要 4096 作为 RSA 密钥。
使用 ssh-keygen 手动
sudo ssh-keygen -f /etc/ssh/ssh_host_rsa_key -N 'myverylongpasswordhere' -b 4096 -t rsa
Run Code Online (Sandbox Code Playgroud)
这会重新创建密钥,但是在重新启动服务器后,我收到以下错误消息:
could not load host key: /etc/ssh/ssh_host_rsa_key
Run Code Online (Sandbox Code Playgroud)
所以我检查了 sshd_config 文件中的内容:
HostKey /etc/ssh/ssh_host_rsa_key
Run Code Online (Sandbox Code Playgroud)
完美匹配。所以,我检查了我所有钥匙的所有者和权利
-rw------- 1 root root 3326 Mär 24 08:57 ssh_host_rsa_key
Run Code Online (Sandbox Code Playgroud)
当我删除所有密钥并使用 重新创建它们时dpkg-reconfigure openssh-server
,密钥更小并且具有与上述相同的文件权限。
问题:如何将dpkg-reconfigure
keylengh 4096 用于 RSA?
小智 46
上面的答案都不适合我。我通过执行以下操作修复了我的 ubuntu 系统:
/usr/bin/ssh-keygen -A
Run Code Online (Sandbox Code Playgroud)
Liv*_*eBT 11
Run Code Online (Sandbox Code Playgroud)sudo ssh-keygen -f /etc/ssh/ssh_host_rsa_key -N 'myverylongpasswordhere' -b 4096 -t rsa
重新创建我的钥匙。但是,在重新启动服务器后,我收到
Run Code Online (Sandbox Code Playgroud)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
Run Code Online (Sandbox Code Playgroud)
但是在进行任何更改之前,您应该阅读整个文档。