关于ssh-keygen -A命令生成主机密钥的类型及存储位置的疑问
ssh-keygen -A生成的主机密钥类型及存储位置详解
我之前也碰到过和你一模一样的问题——启动sshd时弹出sshd: no hostkeys available --exiting的错误,运行ssh-keygen -A解决问题后,也好奇过这条命令到底生成了哪些密钥、存在哪里。刚好我研究过这个,给你详细说明:
当你执行ssh-keygen -A命令时,它会自动生成OpenSSH支持的四种默认主机密钥类型:
- RSA密钥(对应文件
ssh_host_rsa_key和ssh_host_rsa_key.pub) - DSA密钥(对应文件
ssh_host_dsa_key和ssh_host_dsa_key.pub) - ECDSA密钥(对应文件
ssh_host_ecdsa_key和ssh_host_ecdsa_key.pub) - ED25519密钥(对应文件
ssh_host_ed25519_key和ssh_host_ed25519_key.pub)
这些密钥默认都会被存储在**/etc/ssh/目录**下:
- 不带
.pub后缀的是私钥文件,系统会自动把它的权限设为600,只有root用户能读写,保证安全性 - 带
.pub后缀的是公钥文件,权限一般为644,允许其他用户读取,这样远程客户端连接时才能获取到公钥进行验证
sshd启动的时候会自动去/etc/ssh/目录下查找这些主机密钥文件,所以生成完成后你就能成功启动sshd服务了。
备注:内容来源于stack exchange,提问作者user1339750




