My Skills

通过 Cloudflare Pages 托管的个人技能库(由 WorkBuddy 生成)

cloudflared-ssh

让任何云 Linux 机器通过 Cloudflare quick tunnel 实现 SSH 公网访问,无需公网 IP、自有域名或 Cloudflare 账号。一条命令安装 sshd + cloudflared、配置 root 密码(可自定义,留空则生成随机 16 位密码)、启动 tunnel 并输出连接信息。支持 x86_64 / aarch64 多架构,附 stop.sh 关闭暴露、status.sh 查看域名。适用于临时远程访问、演示、无公网 IP 的云/内网机器。

安装方式

每条命令复制时自带安全声明注释(以 # 开头),粘贴给 AI 时它会看到用户已知情授权。
方式 A 已废弃(此 skill 未上架 OpenClaw,命令不可用);方式 B 无需 OpenClaw,直接可用。

A. OpenClaw 用户(已废弃)

本机
openclaw skills install @montano/cloudflared-ssh

B. 通用方式(无需 OpenClaw)

远端
curl -fsSL https://montano-skills-hub.pages.dev/skills/cloudflared-ssh/scripts/setup.sh -o setup.sh && sudo bash setup.sh --bare
本机
ssh -o ProxyCommand="cloudflared access ssh --hostname %h" root@xxxx.trycloudflare.com

✅ 正确步骤(3 步)

  1. 远端 Linux 机器:执行 sudo bash setup.sh --bare,拿到一条带真实域名的 ssh 命令
  2. 本机:复制 setup.sh 输出的那条 ssh -o ProxyCommand=... root@真实域名,粘贴到终端按回车,直接进

不需要 install.sh、不需要配 ~/.ssh/config、不需要记密码,一条命令直连。

⚠ 踩坑记录(v1.2.0 修正)

现象改法
域名带 https:// 前缀cloudflared access ssh 解析失败HostName 一律用裸域名;v1.2.0 setup.sh 已输出裸域名
setup.sh 不在本地报"找不到文件"先 curl 下载再执行
install.sh 写占位域名ssh sandbox 连到错误主机v1.2.0 支持传参 bash -s -- 域名 自动填入
root + 密码 + 公网暴露等于公网开 root SSH--no-root 或连上后立即 passwd
隧道临时、休眠即亡闲置约 1h 后域名失效用 stop.sh / status.sh 管理;别长期依赖
两命令在同机跑分工错乱、配置无效严格区分本机 install / 远端 setup
github 被墙下载 cloudflared 失败setup.sh 自动改走 pkg.cloudflare.com(仅 amd64)