移动端SSH远程连接PC端

前言

躺床上想用手机操作电脑?出差在外要访问家里的机器?或者单纯想在手机上跑 Claude Code?

SSH 可以做到。它是一种加密的远程连接协议,让你用手机控制电脑的命令行。

本文覆盖两种场景:

  • 局域网连接:同一 WiFi 下使用
  • 公网连接:在外面也能连回家

一、PC端开启SSH服务

1.1 macOS

打开 系统设置 > 通用 > 共享,勾选 远程登录,允许的用户选你自己的账户。

macOS系统设置-远程登录界面

1.2 Linux

一般已经装好了 OpenSSH Server。没有的话:

1
sudo apt install openssh-server  # Ubuntu/Debian

1.3 Windows(WSL2)

在 WSL2 的 Linux 发行版里执行:

1
sudo service ssh start

想让它开机自启,把这行加到 .bashrc 里。

二、手机端 SSH 客户端

iOS:Termius,界面好看,免费版够用,支持密钥认证和端口转发。

Android:Termux,完整的 Linux 环境,能装各种开发工具。

三、局域网连接

3.1 获取电脑 IP

1
2
# 在电脑终端执行
ifconfig | grep "inet " | grep -v 127.0.0.1

记下 192.168.x.x 这样的地址。

3.2 手机端配置

在 Termius 里新建 Host:

  • Host: 192.168.x.xx(电脑 IP)
  • Port: 22
  • Username: 你的用户名
  • Password: 登录密码

3.3 密钥认证

密码可以被猜,密钥不行。建议配置密钥认证。

1
2
3
4
5
6
# 在电脑上生成密钥对
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

# 把公钥加到授权文件
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

然后把私钥文件传到手机,在 Termius 里导入。

3.4 测试

连上之后试试:

1
2
3
pwd
cd /Users/username/proj/mygame
claude --help

以上只能在同一 WiFi 下用。想在外面连,往下看。

四、公网连接(Tailscale + Tmux)

家里的电脑藏在路由器后面,外网直接访问不了。Tailscale 解决这个问题——它给你的设备建一条加密隧道,让手机和电脑像在同一局域网里一样通信。

4.1 安装 Tailscale

电脑端

Tailscale 官网 下载安装,用 Google 或 GitHub 账号登录。登录后会显示一个 100.x.x.x 开头的 IP,记下来。

Tailscale设备列表

手机端

App Store 或 Google Play 搜 Tailscale,装好后用同一个账号登录。登录成功后,设备列表里能看到你的电脑。

4.2 用 Termius 连接

在 Termius 新建 Host:

  • Address: 电脑的 Tailscale IP(100.x.x.x
  • Username: 电脑用户名(终端里 whoami 可以查)

首次连接会问是否信任主机,点 Accept,输入密码。

4.3 Tmux 保持会话

SSH 连接断了,正在跑的程序也会断。Tmux 解决这个问题——它让程序在后台继续跑,你随时可以接回来。

1
2
3
4
5
# 创建会话
tmux new -s claude

# 在里面启动 Claude Code
claude

断开:按 Ctrl+b,松开,再按 d。看到 [detached] 就行了,程序还在后台跑。

恢复

1
tmux attach -t claude

回到刚才的界面,一切都在。

五、安全配置

5.1 网络

别在公共 WiFi(咖啡厅、机场)裸连 SSH。要么用 Tailscale,要么用 VPN。

5.2 SSH 加固

1
2
3
4
5
6
7
sudo nano /etc/ssh/sshd_config

# 改这几项
Port 2222 # 换掉默认端口
PasswordAuthentication no # 禁用密码
PubkeyAuthentication yes # 只用密钥
PermitRootLogin no # 禁止 root 登录

5.3 日常习惯

不用的时候断开连接。偶尔看看 SSH 日志有没有异常登录。

六、其他技巧

文件传输

1
2
3
4
5
# 本地 → 远程
scp 本地文件 用户名@IP:远程路径

# 远程 → 本地
scp 用户名@IP:远程文件 本地路径

端口转发

电脑上跑了个本地服务(比如 localhost:3000),想在手机浏览器里看?

1
ssh -L 3000:localhost:3000 用户名@IP

然后手机浏览器访问 localhost:3000

七、总结

场景 方案
在家 局域网 IP + 密码
外出 Tailscale IP + 密码
高安全 Tailscale + 密钥 + 非标准端口

流程:

  1. 电脑开 SSH
  2. 手机装 Termius
  3. 局域网用电脑 IP,公网用 Tailscale IP
  4. 用 Tmux 保持会话

八、参考