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

远程执行Python脚本遇SSH连接拒绝错误,求原因及解决方法

错误「ssh: connect to host 172.28.40.12 port 22: Connection refused」的原因
  • 远程主机未启动SSH服务:SSH默认使用22端口,若远程机器的sshd(Linux)或OpenSSH服务(Windows)未运行,会直接拒绝连接请求。
  • 防火墙拦截22端口:系统防火墙或网络防火墙可能禁止了22端口的入站SSH连接,导致请求被阻断。
  • 网络连通性问题:远程主机IP错误、本地与远程不在同一子网,或路由配置异常,都会导致无法建立连接。可先通过ping 172.28.40.12验证网络是否可达。
  • SSH服务端口非默认22:若远程修改了SSH监听端口,未在命令中指定-p 自定义端口参数,会连接失败。
修复连接并从本地远程运行Python脚本的方法

第一步:修复SSH连接问题

  1. 检查并启动远程SSH服务
    • Linux:执行systemctl status sshd查看状态,未启动则运行systemctl start sshd,设置开机自启systemctl enable sshd。
    • Windows:打开「服务」管理器,找到「OpenSSH SSH Server」,确认状态为「正在运行」,未启动则右键启动并设置启动类型为「自动」。
  2. 开放防火墙22端口
    • Linux:使用ufw allow 22(ufw防火墙)或firewall-cmd --add-port=22/tcp --permanent && firewall-cmd --reload(firewalld)。
    • Windows:在「Windows Defender防火墙高级设置」中添加入站规则,允许TCP协议的22端口连接。
  3. 验证SSH登录
    执行ssh user@172.28.40.12,若能正常登录,说明连接问题已解决。

第二步:远程运行Python脚本的几种方式

方式一:管道传输脚本内容直接执行

将本地脚本内容通过SSH管道传给远程Python环境执行:

cat Sample.py | ssh user@172.28.40.12 python -

注:若远程Python命令为python3,需替换为python3。

方式二:先传脚本到远程再执行

  1. 用scp将本地脚本传到远程主机:
scp Sample.py user@172.28.40.12:/home/user/
  1. 远程执行脚本:
ssh user@172.28.40.12 python /home/user/Sample.py

方式三:Windows远程桌面(RDP)场景下的操作

若使用RDP连接远程Windows机器:

  • 开启远程桌面的文件共享,将本地脚本所在文件夹映射为远程机器的网络驱动器,直接在远程命令行运行脚本。
  • 直接将本地脚本拖拽到远程桌面窗口,复制到远程机器后执行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 07:06:11