You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Python的Paramiko连接远程系统时遇TimeoutError [WinError 10060]求助

解决SSH连接超时(WinError 10060)的方案

先排查网络和端口连通性

  • 打开本地CMD,执行 ping <IP Address>,确认远程主机能被正常访问。如果ping不通,先检查IP是否正确、远程主机是否开机、是否在同一网络/有路由可达。
  • 再执行 telnet <IP Address> 22,测试22端口是否开放。连不上的话,要么远程SSH服务没启动,要么本地/远程防火墙拦截了22端口。

检查远程SSH服务状态

  • 远程主机上确认SSH服务在运行:Linux执行 systemctl status sshd,Windows看服务列表里的「OpenSSH Server」是否启动。
  • 确认远程SSH监听的端口是22:Linux执行 ss -tulpn | grep sshd,如果端口不是22,代码里的port参数要改成对应值。

给代码加超时参数

默认连接超时时间可能太短,在ssh.connect()里手动设置超时:

ssh.connect(host, port, username, password, timeout=30)  # 设置30秒超时,可按需调整

排查本地环境限制

  • 如果是公司网络,可能有代理或防火墙禁止SSH出站,联系IT确认权限。
  • 临时关闭本地杀毒软件/防火墙试试,这类软件常拦截SSH连接。

换用密钥登录(更稳定安全)

密码登录可能被远程主机的安全策略限制,试试密钥登录:

  1. 本地CMD执行 ssh-keygen -t rsa,一路回车生成密钥对。
  2. 把本地C:/Users/你的用户名/.ssh/id_rsa.pub里的内容,复制到远程主机的~/.ssh/authorized_keys文件中(Linux),或者Windows远程主机的C:\Users\远程用户名\.ssh\authorized_keys。
  3. 修改代码用密钥登录:
from paramiko import RSAKey

private_key = RSAKey.from_private_key_file('C:/Users/你的用户名/.ssh/id_rsa')
ssh.connect(host, port, username, pkey=private_key)

开启调试日志定位问题

给paramiko加日志,看连接过程的详细错误:

import paramiko
paramiko.util.log_to_file('ssh_debug.log')  # 日志会写入当前目录的ssh_debug.log

运行代码后查看日志文件,能找到更具体的失败原因。


内容的提问来源于stack exchange,提问作者Kiran Siddeshwar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 00:36:27