NMSSH Socket连接成功但无法建立SSH会话问题排查求助
SSH连接IoT设备会话建立失败排查思路
- 排查IoT设备侧SSH服务状态与配置变更:若昨日至今有设备重启、固件升级、配置修改操作,优先通过串口等本地调试通道直连设备,执行
systemctl status sshd查看sshd服务是否正常运行,检查/etc/ssh/sshd_config配置是否存在IP白名单限制、监听地址变更、密码/密钥登录开关被关闭、最大连接数超限等问题。 - 排查客户端认证凭据有效性:若使用密钥认证,确认本地私钥文件权限是否符合要求(类Unix系统下私钥权限需为600,权限过高会被SSH服务拒绝),核对设备侧对应用户目录下
~/.ssh/authorized_keys文件中是否仍保留当前客户端的公钥;若使用密码认证,确认对应用户密码未被修改,且服务端未开启密码登录限制。 - 排查安全规则拦截问题:TCP 22端口握手成功但后续会话被中断,可能是设备侧安全防护、内网防火墙触发了拦截规则,比如当前客户端IP因多次认证失败被加入临时黑名单、网络设备配置了SSH深度检测规则阻断握手流程。可尝试使用同网段其他终端连接该IoT设备,验证是否为当前客户端IP被限制。
- 排查IoT设备资源负载问题:若设备CPU、内存、存储占用满额,会导致SSH服务仅能响应TCP握手,无法分配资源建立新会话。可本地直连设备后执行
top、df -h命令查看资源占用情况,清理冗余进程或存储文件后重启sshd服务重试。 - 开启调试模式定位具体故障点:客户端侧执行
ssh -v 用户名@192.168.77.30开启Debug模式重连,根据输出的握手日志定位具体失败阶段(密钥交换/认证/会话申请),进一步缩小问题范围。
内容的提问来源于stack exchange,提问作者kiritoty
相关产品推荐
相关产品推荐

