当Ubuntu SSH远程连接提示“Connection refused”时,通常是由以下几个常见原因导致:1. SSH服务未启动,需使用`sudo systemctl start ssh`启动SSH服务;2. 防火墙阻止了SSH端口(默认22),可通过`sudo ufw allow 22`开放端口;3. 网络配置问题,检查服务器IP地址及网卡设置是否正确;4. SSH配置文件`/etc/ssh/sshd_config`被误修改,需确认监听地址为`0.0.0.0`且端口正确;5. 存在SELinux或AppArmor限制,可能需要临时关闭以测试。逐一排查以上问题,基本可以解决“Connection refused”的情况。如果仍未解决,建议通过系统日志`/var/log/auth.log`定位具体原因。
1条回答 默认 最新
关注让【宝码香车】来帮你解答,本回答参考DeepSeek编写,并整理提供。
如果还有疑问可以点击头像关注私信或评论。如果答案让您满意,请采纳、点赞、关注,非常感谢!
Ubuntu SSH远程连接"Connection refused"排查指南
当SSH连接出现"Connection refused"错误时,通常表示客户端能够到达服务器,但服务器拒绝了连接请求。以下是详细的排查步骤:
1. 检查SSH服务状态
首先确认SSH服务是否正在运行:
sudo systemctl status ssh如果服务未运行,启动它:
sudo systemctl start ssh sudo systemctl enable ssh # 设置开机自启2. 检查防火墙设置
Ubuntu默认使用UFW防火墙,检查并开放SSH端口(默认22):
sudo ufw status sudo ufw allow 22/tcp sudo ufw reload3. 验证SSH配置
检查
/etc/ssh/sshd_config文件:sudo nano /etc/ssh/sshd_config确保以下关键配置正确:
Port 22(或你自定义的端口)ListenAddress 0.0.0.0(监听所有网络接口)PermitRootLogin根据需求设置PasswordAuthentication yes(如果使用密码登录)
修改后重启SSH服务:
sudo systemctl restart ssh4. 检查网络配置
确认服务器IP地址和网络连接正常:
ip a ping <server_ip>5. SELinux/AppArmor检查
Ubuntu默认使用AppArmor,检查其状态:
sudo apparmor_status如果需要临时禁用:
sudo systemctl stop apparmor sudo systemctl disable apparmor6. 检查系统日志
查看SSH相关日志获取更多信息:
sudo tail -f /var/log/auth.log7. 端口监听检查
确认SSH端口确实在监听:
sudo netstat -tulnp | grep ssh故障排查顺序

高级排查
如果以上步骤都确认无误,但仍无法连接:
- 尝试使用
-v参数获取详细调试信息:
ssh -v user@server_ip- 检查是否有其他进程占用SSH端口:
sudo lsof -i :22- 尝试临时关闭所有防火墙:
sudo ufw disable sudo iptables -F通过以上步骤系统排查,应该能够解决大多数SSH连接被拒绝的问题。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报