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

排查Paramiko连接Windows远程服务器WinError10060失败问题

排查Paramiko连接Windows服务器的[WinError 10060]问题

第一步:先确认基础网络连通性

  • 在ServerA上执行ping ServerB的IP/主机名,验证网络是否可达。如果ping不通,优先解决网络路由、子网互通问题。
  • 测试SSH端口(默认22)是否开放:用PowerShell命令Test-NetConnection ServerB_IP -Port 22,或者telnet ServerB_IP 22。如果连接失败,说明ServerB的防火墙未放行该端口,或者中间网络设备拦截了SSH流量。

第二步:检查ServerB的SSH服务状态

Windows默认无SSH服务,你能远程登录说明已部署(如OpenSSH),需确认:

  • SSH服务是否正常运行:在ServerB的服务列表中找到OpenSSH SSH Server,查看状态是否为正在运行,若未启动则手动启动并设置为自动启动。
  • 确认SSH监听端口:打开ServerB的SSH配置文件(OpenSSH路径为C:\ProgramData\ssh\sshd_config),检查Port字段值,若不是默认22,Paramiko连接时必须指定对应端口。
  • 验证密码登录权限:配置文件中PasswordAuthentication需设为yes,避免因配置变更导致认证通道无法建立。

第三步:修正Windows账户的用户名格式(针对域/本地账户)

如果使用域账户(如DOMAIN\user),Paramiko中直接用单反斜杠会触发转义问题,可通过以下方式处理:

  • 用双反斜杠转义:username='DOMAIN\\user'
  • 用正斜杠替代反斜杠:username='DOMAIN/user'
  • 使用UPN格式:username='user@domain.com'(需域环境支持)
    注意:该问题仅会导致认证失败,不会引发10060超时错误,需先解决网络/SSH服务问题后再调整用户名格式。

第四步:检查Paramiko代码的基础配置

确保代码中主机、端口、账户信息正确,示例参考:

import paramiko

ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
try:
    # 域账户用双反斜杠转义,自定义端口需指定port参数
    ssh.connect('ServerB_IP或主机名', port=22, username='DOMAIN\\user', password='你的密码')
    # 执行脚本需指定Python绝对路径和脚本路径
    stdin, stdout, stderr = ssh.exec_command('C:\\Python39\\python.exe C:\\scripts\\test.py')
    # 打印执行结果和错误信息
    print(stdout.read().decode('utf-8'))
    print(stderr.read().decode('utf-8'))
finally:
    ssh.close()

第五步:排查防火墙与安全软件拦截

  • ServerB的Windows防火墙:确认已添加OpenSSH SSH Server的入站规则,或手动创建允许对应SSH端口的入站规则。
  • ServerA的出站防火墙:检查是否允许向ServerB的SSH端口发起出站请求,部分严格的安全策略会拦截此类流量。
  • 第三方安全软件:临时关闭ServerB上的杀毒软件、EDR工具等,测试是否能正常连接,若恢复则添加SSH服务的放行规则。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 18:05:04