远程连接Linux总失败?这些隐藏问题你可能没发现,Linux远程连接屡次失败?揭秘常见隐藏故障!
有没有试过半夜两点盯着黑屏的SSH客户端, *** 活连不上服务器?去年我们团队就遇到这破事,三个运维小哥轮班查了18小时,最后发现是密钥文件权限不对。今天就带大家扒一扒那些新手必踩的坑,保准让你少走弯路!
一、网络问题先排查
90%的连接失败都栽在这里。先别急着怀疑人生,按这个流程走:
本地网络测试
打开手机热点切换网络,试试能不能ping通服务器IP。上周有个学员 *** 活连不上,最后发现是公司路由器把22端口给封了服务器网络状态
找台能登录的备用机,用命令telnet 服务器IP 22
。要是显示"Connection refused",八成是SSH服务没启动云服务器特殊设定
注意!腾讯云/阿里云的安全组设置优先级高于系统防火墙。遇到过配置全对但连不上的,结果安全组里忘了开放22端口
二、SSH服务要重启
当你在客户端看到"Connection timed out",先别哭!登录服务器检查这两项:
必做操作清单
- 查看服务状态:
systemctl status sshd
- 启动服务:
systemctl start sshd
- 设置开机自启:
systemctl enable sshd
隐藏问题预警
最近发现CentOS 8有个奇葩bug:升级openssh后配置文件会自动加密。用sshd -t
测试配置时会报错"Unsupported option",得手动删掉加密字段
三、防火墙设置是门玄学
这里有个血泪教训:某公司因为同时开了iptables和firewalld,导致规则互相冲突。记住这个对比表:
防火墙类型 | 查看命令 | 放行端口命令 |
---|---|---|
iptables | iptables -L -n | iptables -A INPUT -p tcp --dport 22 -j ACCEPT |
firewalld | firewall-cmd --list-all | firewall-cmd --add-port=22/tcp --permanent |
重点提醒:改完规则必须重启服务!systemctl restart firewalld
或者service iptables restart
四、密钥认证比密码更坑人
上周帮客户排查时发现,他生成的密钥对用的是RSA-1024,而服务器强制要求2048位以上。密钥三要素必须到位:
- 私钥权限必须是600:
chmod 600 ~/.ssh/id_rsa
- 公钥要完整写入authorized_keys
- 禁用BOM头:用notepad++转成UTF-8无BOM格式
实测案例:有个学员把密钥文件放在Windows桌面,路径带中文导致连接失败。记住!密钥路径越简单越好,比如直接扔C盘根目录
五、配置文件里的魔鬼细节
打开/etc/ssh/sshd_config,重点检查这些参数:
PasswordAuthentication yes
(临时调试用)PermitRootLogin prohibit-password
(禁止root密码登录)Port 22222
(改端口记得同步改防火墙)
致命陷阱:有次修改配置后没删注释符号#,导致新配置不生效。改完务必systemctl restart sshd
,再用netstat -tulnp | grep sshd
确认监听状态
*** 忠告
搞了八年运维,发现最坑的不是技术问题而是思维定式。上个月遇到个案例:所有配置都正确,结果发现是运维把IP地址最后一位记错了。建议备个排查清单贴在显示器上,按步骤检查能省三小时!另外推荐用MobaXterm替代Xshell,自带网络诊断工具真的香。