手机上配 SSH 密钥登录与端口转发
连上服务器只是第一步。这篇讲两个让手机运维真正顺手的进阶动作:用密钥替代密码登录,以及用端口转发把服务器上的服务「搬」到手机浏览器里看。
一、为什么值得把密码换成密钥
手机上输一遍 20 位随机密码是很折磨的事,而且开着密码登录的服务器整天被扫。换成密钥登录后:
- 认证靠手机里的一把私钥,连接不再输密码;
- 私钥从头到尾不离开设备,服务器上只放公钥;
- 确认密钥能登之后,还可以在服务器上关掉密码登录(
/etc/ssh/sshd_config里把PasswordAuthentication设为no),风险面小一截。
二、在 Termius 里生成并部署密钥
生成:进 Keychain → 点 + → New SSH Key → Generate new SSH Key,类型选 ED25519(老服务器不认再退回 RSA 2048 以上),建议配一个 passphrase 并开启记住短语。
部署公钥有三种省事的做法,挑一个:
- 先用密码连上服务器,复制公钥内容,在服务器上执行:
echo "ssh-ed25519 AAAA...你的公钥" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
- 有电脑在旁边:
ssh-copy-id root@服务器地址一次搞定; - 云厂商控制台:不少面板支持直接粘贴公钥绑到实例上。
最后回到 Hosts 编辑主机,认证方式从 Password 改成 Key 并选中这把密钥,断开重连验证不再要密码即生效。
报 Permission denied (publickey) 时按顺序核对:公钥是否真的进了 authorized_keys(一行一条没折行)、主机是否绑对了密钥、服务器上 ~/.ssh 是否为 700 且 authorized_keys 为 600、导入的私钥有没有丢首尾行。
三、端口转发:把远端服务接到手机上
服务器上只监听 127.0.0.1 的服务(数据库、开发中的 Web 应用、各类管理面板)从外面访问不到。端口转发做的事是:手机连着 Termius 的同时,它开一条加密隧道把那个端口「接到」手机本地。
三种类型按方向选:
| 类型 | 典型用法 |
|---|---|
| Local | 把服务器上的 MySQL / 开发服务器映射到手机,本地客户端连 localhost:3306 或浏览器开 localhost:3000 |
| Remote | 反方向,把手机所在网络的服务暴露给服务器访问 |
| Dynamic | 手机上开一个 SOCKS 代理端口,访问内网多台机器共用一条规则 |
日常最常用 Local,以服务器上 3000 端口的开发服务器为例:编辑主机 → Port Forwarding → 加一条 Local 规则(本地端口 3000、远端 localhost:3000)→ 连接主机规则即生效 → 手机浏览器打开 http://localhost:3000。
两个常见坑:隧道只在连接期间有效,浏览器打不开先确认主机处于连接状态;远端端口要填服务真正监听的那个(服务器上 ss -tlnp 可查)。传文件 / 转发莫名中断,多半是切走应用后被系统杀后台——到系统设置里关掉 Termius 的电池优化。
四、功能入口与延伸阅读
Termius 的功能清单、界面截图与安装获取入口见 Termius 安卓版介绍站。
- 手机连服务器的SSH客户端——整体定位与上手路径;
- 免费版与Pro订阅的区别——这两项能力免费版都包含,不用为它们订阅。