树莓派OctoPrint环境SSH连接超时问题求助
问题
我有一台运行OctoPrint的树莓派,已通过配置文件完成各项设置(如将SSH端口设为23),但无法正常连接SSH。客户端执行命令及输出如下:
PS C:\Users\uahs> ssh -vvv -p 23 pi@10.230.141.43 OpenSSH_for_Windows_8.1p1, LibreSSL 3.0.2 debug3: Failed to open file:C:/Users/uahs/.ssh/config error:2 debug3: Failed to open file:C:/ProgramData/ssh/ssh_config error:2 debug2: resolve_canonicalize: hostname 10.230.141.43 is address debug2: ssh_connect_direct debug1: Connecting to 10.230.141.43 [10.230.141.43] port 23. debug1: Connection established. debug3: Failed to open file:C:/Users/uahs/.ssh/id_rsa-cert error:2 debug3: Failed to open file:C:/Users/uahs/.ssh/id_rsa-cert.pub error:2 debug1: identity file C:\\Users\\uahs/.ssh/id_rsa-cert type -1 debug3: Failed to open file:C:/Users/uahs/.ssh/id_dsa error:2 debug3: Failed to open file:C:/Users/uahs/.ssh/id_dsa.pub error:2 debug1: identity file C:\\Users\\uahs/.ssh/id_dsa type -1 debug3: Failed to open file:C:/Users/uahs/.ssh/id_dsa-cert error:2 debug3: Failed to open file:C:/Users/uahs/.ssh/id_dsa-cert.pub error:2 debug1: identity file C:\\Users\\uahs/.ssh/id_dsa-cert type -1 debug3: Failed to open file:C:/Users/uahs/.ssh/id_ecdsa error:2 debug3: Failed to open file:C:/Users/uahs/.ssh/id_ecdsa.pub error:2 debug1: identity file C:\\Users\\uahs/.ssh/id_ecdsa type -1 debug3: Failed to open file:C:/Users/uahs/.ssh/id_ecdsa-cert error:2 debug3: Failed to open file:C:/Users/uahs/.ssh/id_ecdsa-cert.pub error:2 debug1: identity file C:\\Users\\uahs/.ssh/id_ecdsa-cert type -1 debug1: identity file C:\\Users\\uahs/.ssh/id_ed25519 type 3 debug3: Failed to open file:C:/Users/uahs/.ssh/id_ed25519-cert error:2 debug3: Failed to open file:C:/Users/uahs/.ssh/id_ed25519-cert.pub error:2 debug1: identity file C:\\Users\\uahs/.ssh/id_ed25519-cert type -1 debug3: Failed to open file:C:/Users/uahs/.ssh/id_xmss error:2 debug3: Failed to open file:C:/Users/uahs/.ssh/id_xmss.pub error:2 debug1: identity file C:\\Users\\uahs/.ssh/id_xmss type -1 debug3: Failed to open file:C:/Users/uahs/.ssh/id_xmss-cert error:2 debug3: Failed to open file:C:/Users/uahs/.ssh/id_xmss-cert.pub error:2 debug1: identity file C:\\Users\\uahs/.ssh/id_xmss-cert type -1 debug1: Local version string SSH-2.0-OpenSSH_for_Windows_8.1 debug3: recv - from CB(2) ERROR:138, io:000002460156D400 kex_exchange_identification: read: Connection timed out
注:上述证书文件打开失败的错误属于正常情况,我已配置好证书。
服务器端/var/log/auth.log日志内容:
Jul 6 16:22:50 octopi su: (to pi) root on none Jul 6 16:22:50 octopi su: pam_unix(su:session): session opened for user pi by (uid=0) Jul 6 16:22:50 octopi sshd[728]: debug1: Set /proc/self/oom_score_adj from 0 to -1000 Jul 6 16:22:50 octopi sshd[728]: debug1: Bind to port 23 on 0.0.0.0. Jul 6 16:22:50 octopi sshd[728]: Server listening on 0.0.0.0 port 23. Jul 6 16:22:50 octopi sshd[728]: debug1: Bind to port 23 on 10.230.141.43. Jul 6 16:22:50 octopi sshd[728]: error: Bind to port 23 on 10.230.141.43 failed: Address already in use. Jul 6 16:22:50 octopi systemd: pam_unix(systemd-user:session): session opened for user pi by (uid=0) Jul 6 16:33:53 octopi sshd[728]: debug1: Forked child 1288. Jul 6 16:33:53 octopi sshd[1288]: debug1: Set /proc/self/oom_score_adj to 0 Jul 6 16:33:53 octopi sshd[1288]: debug1: rexec start in 4 out 4 newsock 4 pipe 6 sock 7 Jul 6 16:33:53 octopi sshd[1288]: debug1: inetd sockets after dupping: 3, 3 Jul 6 16:33:53 octopi sshd[1288]: Connection from 10.230.19.79 port 56747 on 10.230.141.43 port 23 Jul 6 16:35:19 octopi sshd[728]: debug1: Forked child 2296. Jul 6 16:35:19 octopi sshd[2296]: debug1: Set /proc/self/oom_score_adj to 0 Jul 6 16:35:19 octopi sshd[2296]: debug1: rexec start in 4 out 4 newsock 4 pipe 7 sock 8 Jul 6 16:35:19 octopi sshd[2296]: debug1: inetd sockets after dupping: 3, 3 Jul 6 16:35:19 octopi sshd[2296]: Connection from 10.230.19.79 port 56784 on 10.230.141.43 port 23 Jul 6 16:41:26 octopi sshd[728]: debug1: Forked child 6567. Jul 6 16:41:26 octopi sshd[6567]: debug1: Set /proc/self/oom_score_adj to 0 Jul 6 16:41:26 octopi sshd[6567]: debug1: rexec start in 4 out 4 newsock 4 pipe 6 sock 7 Jul 6 16:41:26 octopi sshd[6567]: debug1: inetd sockets after dupping: 3, 3 Jul 6 16:41:26 octopi sshd[6567]: Connection from 10.230.19.79 port 57048 on 10.230.141.43 port 23
树莓派的OctoPrint Web界面可正常访问,能检测到SSH服务器存在,但SSH连接超时。此前曾通过该配置成功连接,近期出现此问题,请问这是网络问题还是配置问题?该如何解决?
分析与解决方法
核心问题定位
从服务器日志中的error: Bind to port 23 on 10.230.141.43 failed: Address already in use可以明确,端口23已被其他进程占用,这是导致SSH连接超时的核心原因。尽管sshd已绑定0.0.0.0:23(所有网卡),但绑定具体网卡IP时失败,导致部分连接无法完成密钥交换,最终触发客户端超时。
具体解决步骤
排查占用端口23的进程
在树莓派上执行以下命令,找出占用端口的进程信息:sudo lsof -i :23 # 或者使用netstat命令 sudo netstat -tulpn | grep :23命令会返回占用端口的进程PID和名称。
处理占用端口的进程
- 如果该进程是无用服务,直接终止并重启sshd:
sudo kill -9 <进程PID> sudo systemctl restart sshd - 如果该进程是必须保留的服务,修改sshd监听端口为未被占用的端口(例如2222):
- 编辑sshd配置文件:
sudo nano /etc/ssh/sshd_config - 找到
Port字段,将23替换为新端口(如2222),保存并退出。 - 重启sshd服务:
sudo systemctl restart sshd - 客户端连接时使用新端口:
ssh -p 2222 pi@10.230.141.43
- 编辑sshd配置文件:
- 如果该进程是无用服务,直接终止并重启sshd:
验证修复效果
执行客户端连接命令,确认是否能正常登录;同时查看服务器/var/log/auth.log,确保不再出现端口绑定失败的错误。
补充说明
OctoPrint Web界面能正常访问说明基础网络连通,但SSH端口被占用会阻断连接的密钥交换流程,最终导致超时。之前能正常连接,大概率是近期有新服务启动占用了23端口,或是sshd配置变更后出现绑定冲突。
内容的提问来源于stack exchange,提问作者AGreatUsernameChoice
相关产品推荐
相关产品推荐

