GitHub Actions SSH握手失败:overflow reading version string问题求助
报错成因说明
你的DigitalOcean服务器可以正常连接,说明GitHub Actions侧的密钥配置、流水线逻辑本身没有问题,错误完全出在Linode侧的配置或网络层面,常见原因如下:
- 端口配置错误:这是该错误最高发的原因,首先检查
deployment-config.json中Linode服务器对应的port字段值,确认是否填为了非SSH服务的端口(如80、443、其他业务端口)。SSH客户端向非SSH服务端口发起握手请求时,对方返回的内容不符合SSH协议版本字符串格式,就会触发该溢出错误。你可以本地执行ssh -p <配置的端口> <配置的用户名>@<Linode服务器IP>手动验证,确认端口是否正确、能否正常建立SSH连接。 - 网络拦截:Linode侧的云安全组、服务器内部的ufw/iptables防火墙规则如果拦截了GitHub Actions的出口IP,会导致SSH连接请求被拦截,返回的响应内容不符合SSH协议要求,也会触发该报错。
- SSH服务异常:检查Linode服务器上的sshd服务是否正常运行、配置是否被篡改,比如自定义了超长的前置Banner内容,导致SSH握手时读取版本字符串超出长度限制。
- 配置解析错误:检查
deployment-config.json中Linode对应的配置项是否存在多余的特殊字符、换行,导致解析出来的IP、端口字段不符合预期,实际连接到了错误的地址和端口。
内容的提问来源于stack exchange,提问作者vsahinid
相关产品推荐
相关产品推荐

