应用商店搜索:ssh
找到IP配置工具进行安装
然后点初始化
即可修复
如果还是连不上,那么需要手工排查了:
题外篇 手工排查
从您提供的错误信息来看,问题主要涉及两个方面:
- 过时的配置选项
RSAAuthentication
。 - 私钥文件权限过于宽松,导致 SSH 无法加载私钥。
1. 关于 RSAAuthentication
配置选项过时
RSAAuthentication
配置选项在较新的 OpenSSH 版本中已经被废弃。您可以在 /etc/ssh/sshd_config
配置文件中将其移除或注释掉。
找到 sshd_config
文件中的这一行:
RSAAuthentication yes
将其删除或注释掉(在行前加上 #
):
# RSAAuthentication yes
然后保存文件并重新加载 SSH 配置:
sudo systemctl reload ssh
2. 关于私钥文件权限问题
错误信息表明,您的私钥文件权限设置过于宽松(0755
),这使得 SSH 拒绝加载它们。私钥文件必须具备更严格的权限,通常是 0600
,意味着只有文件的所有者(root 用户)才能读写文件。
您可以使用以下命令修改文件权限:
sudo chmod 600 /etc/ssh/ssh_host_rsa_key
sudo chmod 600 /etc/ssh/ssh_host_ecdsa_key
sudo chmod 600 /etc/ssh/ssh_host_ed25519_key
这将确保只有 root 用户可以访问这些私钥文件,从而解决 "UNPROTECTED PRIVATE KEY FILE" 的警告。
3. 重启 SSH 服务
完成上述修改后,您可以重新启动 SSH 服务:
sudo systemctl restart ssh
然后,再次检查 SSH 服务状态:
sudo systemctl status ssh
总结
- 删除或注释掉
/etc/ssh/sshd_config
中的RSAAuthentication
配置选项。 - 更改私钥文件的权限,确保它们只能由 root 用户访问(权限设置为
600
)。 - 重新加载或重启 SSH 服务。
这些操作应该能够解决您遇到的错误。如果问题仍然存在,请提供更多日志或错误信息,以便进一步分析。
无法密码登录
如果您无法通过纯密码登录 SSH,而服务器拒绝连接,可能是以下几种原因导致的:
1. 禁用密码认证
在 SSH 配置文件 /etc/ssh/sshd_config
中,可能已经禁用了密码认证。检查一下以下配置项:
PasswordAuthentication yes
如果该项被设置为 no
,则会禁用密码认证。
解决方法:
-
打开 SSH 配置文件:
sudo nano /etc/ssh/sshd_config
-
查找
PasswordAuthentication
配置项,并确保它是yes
:PasswordAuthentication yes
如果它是
no
,请将其更改为yes
,然后保存并退出。 -
重启 SSH 服务:
sudo systemctl restart ssh
2. 允许 SSH 通过防火墙
确保服务器的防火墙没有阻止 SSH 的连接。您可以通过以下命令查看防火墙状态并确保允许 SSH 访问:
-
如果使用
ufw
(Uncomplicated Firewall),检查防火墙状态:sudo ufw status
如果 SSH 被阻止,您可以允许它:
sudo ufw allow ssh
-
如果使用
firewalld
,确保ssh
服务被允许:sudo firewall-cmd --permanent --add-service=ssh sudo firewall-cmd --reload
3. 确保您的用户有登录权限
如果是特定用户无法使用密码登录,您需要确认该用户是否被允许登录 SSH。检查 /etc/ssh/sshd_config
中是否有类似以下内容:
AllowUsers yourusername
如果有,确保它包括您的用户名。如果没有,请添加该配置项或检查其他登录限制。
4. 检查日志文件
如果以上步骤无法解决问题,可以查看 SSH 服务的日志,以便诊断为什么连接被拒绝。可以查看 /var/log/auth.log
(或其他相关的日志文件,根据系统配置有所不同),查看是否有相关错误信息:
sudo tail -f /var/log/auth.log
5. 验证目标服务器的 SSH 配置
您可以通过以下命令尝试通过密码进行连接:
ssh -v user@your-server-ip
-v
(详细模式)会提供更多调试信息,帮助您了解连接失败的具体原因。
总结
- 检查并确保
PasswordAuthentication yes
在 SSH 配置文件中启用。 - 检查防火墙规则,确保 SSH 被允许。
- 确保用户有 SSH 登录权限。
- 查看 SSH 日志以获得更多诊断信息。
完成这些步骤后,您应该能够通过密码正常登录。如果问题仍然存在,请提供更多的错误日志或调试信息。