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

如何为iPhone“通过SSH运行脚本”快捷指令传递参数?

解决iPhone快捷指令SSH运行Python脚本打开浏览器的问题

问题背景

通过iPhone快捷指令SSH到本地电脑运行Python脚本,脚本可向手机返回打印内容,但无法在电脑上打开浏览器。核心原因是SSH需启用X11转发(-X或-Y参数),但暂未找到在快捷指令中配置的有效方式,需寻找可行替代方案。

可行解决方案

1. 直接在快捷指令的SSH命令中添加-X/-Y参数

在快捷指令的「运行Shell脚本」动作里,将SSH命令修改为带X转发参数的形式:

ssh -X 你的用户名@电脑IP地址 "python3 /本地脚本的绝对路径.py"
  • -X:启用X11转发,适用于非信任连接场景
  • -Y:启用信任级别的X11转发(权限更高,适合本地内网环境)

若脚本需接收参数,直接在命令末尾追加即可:

ssh -X 你的用户名@电脑IP地址 "python3 /本地脚本的绝对路径.py 参数1 参数2"

2. 修改本地电脑SSH配置,默认启用X转发

无需每次在命令中手动加参数,直接在电脑的SSH配置文件中设置默认转发规则:

  1. 打开电脑的~/.ssh/config文件(无此文件则新建)
  2. 添加以下配置内容:
Host 自定义主机别名
    HostName 你的电脑IP
    User 你的用户名
    ForwardX11 yes
    ForwardX11Trusted yes
  1. 保存后,快捷指令中的SSH命令可简化为:
ssh 自定义主机别名 "python3 /本地脚本的绝对路径.py"

3. Windows电脑的额外配置要点

Windows本身无内置X11服务器,需补充以下操作:

  • 安装VcXsrv或Xming(二选一)作为X11服务器
  • 启动X服务器时,勾选「Disable access control」选项
  • 修正Python脚本中浏览器路径的格式(带空格的路径需用引号包裹),同时优化参数传递逻辑:
import webbrowser
import sys
print("This print statement is shown on my phone")
# 修正路径格式,用引号包裹含空格的程序路径
webbrowser.get('"C:/Program Files (x86)/Google/Chrome/Application/chrome.exe"').open(sys.argv[1] if len(sys.argv) > 1 else "https://www.google.com")
print("This print statement is also shown on my phone")

注意:原代码中str(sys.argv)会将参数列表转为带括号的字符串,建议取具体参数(如sys.argv[1])或指定默认网址。

4. 快捷指令动态传递参数的方法

若需在快捷指令中向脚本动态传递参数:

  1. 在快捷指令中添加「询问输入」或其他参数来源动作
  2. 在「运行Shell脚本」动作中,用$变量名引用参数,示例:
ssh -X 你的用户名@电脑IP地址 "python3 /本地脚本的绝对路径.py $输入内容"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 20:55:21