1. 检查 ssh 服务状态
首先,确保 ssh 服务正在运行。
sudo systemctl status ssh
如果 ssh 服务未运行,可以启动它:
sudo systemctl start ssh
如果希望 ssh 服务在每次系统启动时自动启动,可以启用它:
sudo systemctl enable ssh
2. 检查 ssh 配置文件
确认 ssh 配置文件 /etc/ssh/sshd_config 中的配置是正确的。
sudo vi /etc/ssh/sshd_config
确保以下行没有被注释,并且端口设置正确:
port 22 permitrootlogin yes passwordauthentication yes
保存并关闭文件后,重新启动 ssh 服务以应用更改:
sudo systemctl restart ssh
3. 检查防火墙设置
确保防火墙没有阻止 ssh 连接。
查看防火墙状态:
sudo ufw status
允许 ssh 通过防火墙:
sudo ufw allow ssh
或者
sudo ufw allow 22/tcp
启用防火墙(如果尚未启用):
sudo ufw enable
4. 检查网络连接
确保您可以从客户端机器连接到服务器的 ip 地址:
ping <服务器ip地址>
5. 查看 ssh 日志
查看 ssh 日志文件,以获取更多关于连接失败的详细信息:
sudo tail -f /var/log/auth.log
6. 检查用户权限
确保您尝试登录的用户存在,并且具有正确的权限。
检查用户是否存在:
id <用户名>
7. 检查 ssh 客户端配置
确保您的 ssh 客户端配置正确,并且指向正确的端口和用户。
例如:
ssh -p 22 <用户名>@<服务器ip地址>
8. 测试本地连接
在服务器上,尝试从本地连接到 ssh 服务,以确保 ssh 服务正常运行:
ssh <用户名>@localhost
9. 重新安装 openssh
如果上述步骤均无效,您可以尝试重新安装 openssh 服务:
sudo apt-get remove --purge openssh-server sudo apt-get install openssh-server sudo systemctl start ssh
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
发表评论