Windows SSH over FRP STCP
SkillDev toolsConnect a Windows machine with no public inbound port (Tianyi Cloud PC, cloud desktop, office PC behind NAT) to an existing frps via FRP STCP so the controlling machine can SSH in. Use when the user mentions Tianyi Cloud PC, Windows cloud desktop SSH, STCP, frpc visitor, OpenSSH for Windows, 127.0.0
Use Windows SSH over FRP STCP in Claude, ChatGPT or Ahel Desktop
Free. Sign in, add Windows SSH over FRP STCP and connect your AI. About a minute.
Also: Claude Code · Cursor · Codex
Then ask your AI: use the Windows SSH over FRP STCP skill
Details
Instructions available. Your AI can read the instructions. Execution depends on the setup they require.
Account requirements not reviewed. Check the skill instructions before use; Ahel provides instructions and does not run this skill.
No other account needed.
Add Ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.
What this skill tells your AI
The instructions your AI receives, as published by dengyie/awesome-skills in windows-ssh-stcp/SKILL.md and read by Ahel’s review.
零入站远程 SSH:Windows 上的 frpc 主动连出到 frps,把本机只监听环回的 sshd 登记成 STCP。控制机上的 visitor 把它映射到 127.0.0.1:2222。公网只暴露 frps 已有端口,不开放 22,也不为这台机器新增防火墙规则。
Windows sshd 127.0.0.1:22
^
Windows frpc (stcp proxy) ----出站----> frps 已有端口
^
控制机 frpc (visitor) ------出站----------┘
|
控制机 127.0.0.1:2222
|
ssh -p 2222 <user>@127.0.0.1
本 skill 不含真实地址、token、secretKey、用户名或公钥。连接三要素一律用占位符,由操作者交互提供或放在私有目录。深度细节按需读:
references/windows-provider.md:Windows 侧 OpenSSH、frpc.toml、计划任务、公钥 ACL、清理清单references/visitor.md:macOS / Linux visitor 与 SSH configreferences/pitfalls.md:这次部署和复用中继时实机踩过的坑
先决定,不要直接装
- 已有 frps 就复用。 读它的
bindPort、auth.token、transport.tls.force。STCP 不占公网端口,allowPorts不用改,防火墙不用加规则。 - 版本跟 frps 走。 两端都用 frps 的版本(当前生产验证过的是 0.71.0)。不要因为旧教程写 0.61 就降级。
- 每台机器单独的 STCP secretKey。
openssl rand -hex 16。不要复用另一台设备的密钥。proxy 名全局唯一,例如win-ssh-<短名>。 - visitor 端口避开本机占用。 默认
2222,先确认没人监听。55555 一类端口在有些机器上会被隐形进程占用。
连接三要素
| 占位符 | 谁持有 | 作用 |
|---|---|---|
<FRPS_ADDR> | 三端 | 域名或 IP。纯 TCP,Cloudflare 必须灰云 |
<FRPS_PORT> | 三端 | 已有 frps 端口,不是 22 |
<FRPS_TOKEN> | 三端 | 登录 frps。泄露等于别人能接入这台中继 |
<PROXY_NAME> | Windows + visitor | 两端字符串必须一致 |
<STCP_SECRET> | 仅这两端 | 点对点配对,frps 不保存它 |
<SSH_USER> | SSH | Windows 上启用且能进 Administrators 或普通用户的账户 |
执行顺序
- 在 Windows 上装 OpenSSH,只听
127.0.0.1:22,不加公网防火墙规则。系统能力包失败时用官方 Win32-OpenSSH 便携版,功能等价。完整命令见references/windows-provider.md。 - 装与 frps 同版本的
frpc.exe,写入无 BOM 的C:\frp\frpc.toml。服务端有transport.tls.force = true时才加transport.tls.enable = true,否则不要加。日志用log.maxDays,不要把 stdout 追加到文件。 - Windows 侧优先用 NSSM 服务常驻:
AppExit Default Restart、AppRestartDelay 5000。没有 NSSM 时再用「开机 + 每 5 分钟」计划任务;那种任务不能恢复被强制结束后仍显示 Running 的实例。 - 控制机写 visitor,映射到
127.0.0.1:2222。macOS 用 LaunchAgent,程序、配置和工作目录都写绝对路径。见references/visitor.md。 - 先读横幅确认链路,再装公钥。横幅应是
SSH-2.0-OpenSSH_for_Windows_...。 - 公钥写到 sshd 实际读取的文件。Administrators 组成员通常是
C:\ProgramData\ssh\administrators_authorized_keys,写完必须断继承并只留 SYSTEM 与 Administrators 完全控制。 - 端到端:
ssh <host-alias> whoami返回计算机名\用户。然后删掉C:\frp里的安装脚本、zip 和解压目录。
验收
- frps dashboard 的
/api/proxy/stcp里该 proxy 为online。v0.71 没有/api/proxy,请求它会 404,不能用来判断健康。 ssh -p 2222能登录,且 Windowsnetstat里 22 只出现127.0.0.1。- 计划任务在 frpc 进程被结束后 5 分钟内重新出现
frpc.exe。 C:\frp只剩frpc.exe、frpc.toml、启动脚本和 frpc 自己写的日志。
分享纪律
分享前搜索本目录,确认没有 32 位十六进制密钥、私网 IPv4、真实域名、Windows 用户名和公钥正文。真实值只留在操作者自己的 ~/project/<部署目录>/ 和 SSH config。
Signals
- GitHub stars
- 49
- Forks
- 13
- Last commit
- Oct 2026
Advanced
- Item type
- skill
- Key
windows-ssh-stcp- Source
- github.com/dengyie/awesome-skills
github.com/dengyie/awesome-skills
Related picks
Skill · cloudflare
The pick for Cloudflarecloudflare-deploy
Skill · openai
The pick for Cloudflarecloudflare-workers-architect
Skill · leoyeai
The pick for Cloudflaregenerate-sandbox-policy
Skill · nvidia
The pick for Infrahttp-to-https
Skill · thedaviddias
The pick for Infrasecrets-exposure-review
Skill · naodeng
The pick for Secrets