Permissions 0640 for '/etc/ssh/ssh_host_ed25519_key' are too open. It is required that your private key files are NoT accessible by others. This priuate key uill be ignored. Unable to load host key "/etc/ssh/ssh_host_ed25519_key": bad permissions Unable to load host key: /etc/ssh/ssh_host_ed25519_key sshd: no hostkeys available -- exiting.
时间: 2025-03-22 21:00:58 浏览: 127
### 解决 SSH 主机密钥文件权限设置错误的方法
当 `sshd` 报错提示无法加载主机密钥 `/etc/ssh/ssh_host_ed25519_key` 并显示“bad permissions”时,这通常是因为该密钥文件的权限设置不符合安全要求。以下是具体解决方案:
#### 权限修复
确保 `/etc/ssh/ssh_host_ed25519_key` 的权限仅允许 root 用户读取和写入。可以通过以下命令调整权限:
```bash
sudo chmod 600 /etc/ssh/ssh_host_ed25519_key
```
此外,确认其所属用户组为 root:
```bash
sudo chown root:root /etc/ssh/ssh_host_ed25519_key
```
如果其他类型的主机密钥也存在相同问题,则需逐一检查并修正这些文件的权限,例如:
- `/etc/ssh/ssh_host_rsa_key`
- `/etc/ssh/ssh_host_ecdsa_key`
- `/etc/ssh/ssh_host_dsa_key`
对于上述每种密钥文件,执行相同的权限修改操作。
#### 验证配置文件
检查 `/etc/ssh/sshd_config` 中关于主机密钥路径的相关配置是否正确。默认情况下,`HostKey` 参数应指向实际存在的密钥文件位置[^2]。如果没有指定特定算法对应的密钥路径,默认会尝试加载 `/etc/ssh/ssh_host_*_key` 下的所有可用密钥。
#### 测试服务重启
完成以上更改之后,重新启动 `sshd` 服务以应用新的权限设置:
```bash
sudo systemctl restart sshd
```
或者,在某些系统中可能需要使用以下命令:
```bash
sudo service ssh restart
```
此时再次尝试通过 SecureCRT 或其他客户端连接到 Ubuntu 主机验证问题是否已解决[^3]。
#### 替换损坏或丢失的密钥(可选)
假如发现现有密钥确实存在问题甚至遗失,可以考虑生成新密钥来替代旧有的一套。注意此过程会影响之前基于原有私钥建立的信任关系,因此务必谨慎处理。创建新 ED25519 类型密钥示例如下:
```bash
sudo ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key -N ""
```
最后记得同步更新所有依赖于原公钥的服务端授权记录[^4]。
---
阅读全文
相关推荐

















