引言

手机通过 SSH 连接电脑后,会和电脑本地登录一样,直接进入 iflow CLI,所有 iflow 指令都能在手机上输入、执行,iflow 的输出也会实时显示在手机终端里。

Termux(手机端 Linux 终端)+ Termius(SSH 客户端) → 连接 Windows SSH → 运行 iflow cli,技术上 100% 可行,和用电脑 SSH 连接的效果完全一致。

一、Windows 电脑端临时打开 / 关闭防火墙的命令(管理员 PowerShell)

以下命令仅用于临时测试(比如排查连接问题),测试完成后建议恢复之前的安全规则,避免暴露风险:

1. 临时允许所有 SSH 入站(仅测试用)
# 先备份现有SSH防火墙规则(可选,建议执行)
Get-NetFirewallRule | Where-Object Name -match 'sshd' | Export-Clixml -Path "C:\sshd_firewall_backup.xml"

# 临时允许所有IP访问SSH(22端口)
New-NetFirewallRule -Name sshd-temp-all -DisplayName "SSH 临时全开放" -Direction Inbound -Protocol TCP -LocalPort 22 -RemoteAddress Any -Action Allow -Priority 5

二、手机(Termux)+ 电脑端 SSH 连接 iflow 的完整命令

不管是手机(Termux)还是电脑(终端 / CMD/PowerShell),连接 Windows SSH 的核心命令完全一致,且效果 100% 相同,具体如下:

1. 基础连接命令(通用)
# 手机Termux/电脑终端/PowerShell通用
ssh user@192.168.1.18
  • 说明:user 是你配置的允许登录用户,192.168.1.18 是 Windows 服务器的局域网 IP;
  • 连接后会依次验证:SSH 密钥 → Windows 密码 → 微软 2FA,全部通过后直接进入 iflow CLI。
2. 若密钥不在默认路径(可选)

如果 SSH 密钥不是 ~/.ssh/id_ed25519(比如自定义了密钥文件名 / 路径),补充 -i 参数指定密钥:

# 手机Termux/电脑通用(示例)
ssh -i ~/.ssh/my_key user@192.168.1.18
3. Tailscale 远程连接(外网)

如果不在局域网,通过 Tailscale 连接时,把 IP 换成 Windows 的 Tailscale 内网 IP(比如 100.xxx.xxx.xxx)即可:

ssh user@100.xxx.xxx.xxx

☝️官方说明,以下均为保障安全做出的配置。


我设计的终极安全模式:锁死在应用里

受限制 shell + 强制启动 iflow

实现效果:

  1. SSH 一登录,直接进入 iflow CLI
  2. 退不出 iflow,一退出就断开 SSH
  3. 任何系统命令都用不了:dir、cd、rm、powershell、reg 全禁用
  4. iflow 本身需要的系统权限完全保留
  5. 三层验证:密钥 + 密码 + 2FA 全部保留
  6. 仅允许局域网 + Tailscale 访问,禁止公网

一句话总结:用户被锁在应用里,系统完全隔离,应用正常满权限运行。这是 Linux/Windows 服务器标准安全玩法。


最终无矛盾、最安全配置(直接抄)

1. sshd_config 全覆盖配置

路径:C:\ProgramData\ssh\sshd_config

# ==============================
# 定制安全锁死版 SSHD —— 仅运行 iflow
# 验证:密钥 → Windows密码 → 微软Authenticator
# 外网仅Tailscale
# 用户只能用iflow,无法操作系统
# ==============================

Port 22
ListenAddress 192.168.1.18

# 只允许指定用户
AllowUsers user
DenyUsers *
PermitRootLogin no

# 密钥必选
PubkeyAuthentication yes

# 密码 + 2FA
PasswordAuthentication yes
ChallengeResponseAuthentication yes
UsePAM yes
AuthenticationMethods publickey,password,keyboard-interactive

MaxAuthTries 3
LoginGraceTime 30

# 🔒 强制登录后只运行 iflow
ForceCommand iflow

# 完全禁用危险转发
AllowTcpForwarding no
GatewayPorts no
X11Forwarding no
PermitUserEnvironment no
PermitUserRC no
AllowStreamLocalForwarding no

# 空闲自动断开
ClientAliveInterval 120
ClientAliveCountMax 3

# 高安全加密套件
LogLevel VERBOSE
StrictModes yes
HostKeyAlgorithms ssh-ed25519
KexAlgorithms curve25519-sha256@libssh.org
Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com
MACs hmac-sha2-512-etm@openssh.com

Banner none

关键:ForceCommand iflow

  • 登录立刻执行 iflow
  • 无法退回 shell
  • Ctrl+C 退出 iflow = 直接断 SSH
  • 用户看不到 cmd/powershell,输不了系统命令
  • iflow 自身权限、功能 100% 正常

2. 防火墙规则(管理员 PowerShell)

# 清理旧规则
Get-NetFirewallRule | Where-Object Name -match 'OpenSSH|sshd' | Remove-NetFirewallRule

# 只允许局域网 + Tailscale
New-NetFirewallRule -Name sshd-local -DisplayName "SSH 局域网" -Direction Inbound -Protocol TCP -LocalPort 22 -RemoteAddress 192.168.1.0/24 -Action Allow
New-NetFirewallRule -Name sshd-tailscale -DisplayName "SSH Tailscale" -Direction Inbound -Protocol TCP -LocalPort 22 -RemoteAddress 100.64.0.0/10 -Action Allow

# 禁止公网
New-NetFirewallRule -Name sshd-deny-public -DisplayName "SSH 禁止公网" -Direction Inbound -Protocol TCP -LocalPort 22 -RemoteAddress Any -Action Block -Priority 10

3. 重启 SSH 生效

Restart-Service sshd

最终效果

  1. 只能用:ssh user@192.168.1.18
  2. 三层验证:密钥 → Windows 密码 → 2FA
  3. 密码最多 3 次重试
  4. 外网仅 Tailscale 可连
  5. 登录直接进 iflow CLI
  6. 无法操作系统、无法退到 shell
  7. iflow 功能、权限完全正常

只需你确认一件事

在 Windows cmd 里直接输入 iflow 能不能启动?

  • 能 → 这套配置直接完美运行
  • 不能 → 改成绝对路径:ForceCommand C:\tools\iflow.exe
Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐