Android SSH 客户端
Termexa 通过 SSH 把 Android 手机、平板或折叠屏连接到你已经在用的服务器。本页依次介绍如何添加主机并登录,然后说明连接后终端能做什么。
为什么在手机上用 SSH 通常很别扭
- 手机键盘没有 Esc、Tab、Ctrl 和方向键,而 shell 和编辑器都离不开它们。
- 手机从 Wi-Fi 切换到移动数据,或屏幕关闭时,连接就会断开。
- 私钥和密码需要在随身携带的设备上有一个安全的存放位置。
四步连接服务器
- 添加主机。 在终端页面点 ☰ 打开连接,再点远程终端 · 添加新的 SSH 主机,输入别名、地址(域名或 IP)、端口和用户名。也可以设置登录后执行的要运行的命令,例如
tmux new -A -s main。 - 选择登录方式。 在手机上生成新的 Ed25519 密钥并把公钥复制到服务器,或导入已有私钥(Ed25519、RSA 或 ECDSA,有密码短语的一并输入),或使用密码。服务器追加提问时(例如一次性验证码,keyboard-interactive),Termexa 会原样显示服务器的提示并发送你的回答。
- 核对服务器密钥。 首次连接时,Termexa 会显示服务器密钥的指纹。与服务器上的指纹核对后再点信任。此后每次连接都会校验密钥,一旦密钥变化,Termexa 会停止而不是继续连接。
- 用工具栏输入。 终端下方的两行工具栏有 Esc、Tab、Ctrl、Alt、Shift、Page Up/Down 和方向键。先点 Ctrl 再点其他键,即可输入 Ctrl+C 这样的组合。要让 Ctrl 在多个按键间保持开启,请在设置 → 快捷键面板中添加 Ctrl 锁定键。
示例:把生成的密钥添加到服务器
点生成新密钥后,点复制公钥,然后在服务器上以同一用户运行:
mkdir -p ~/.ssh && chmod 700 ~/.ssh
echo 'PASTE-THE-PUBLIC-KEY-HERE' >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
要与首次连接时 Termexa 显示的指纹核对,可在服务器上输出它自己的指纹:
ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub
SSH 客户端的其他功能
- 钥匙串。 密码、密钥和密码短语用 Android Keystore 密钥加密,不参与自动备份,并可由多个主机共用。保存密钥的密码短语是可选的,并受设备锁或生物识别保护。
- 跳板机。 经由另一个已保存的主机连接服务器(类似 ProxyJump),两台服务器的密钥都会校验。
- 本地端口转发。 把手机上的
127.0.0.1:本地端口转发到已保存主机可达的地址和端口,例如服务器上的 Web 控制台。正在运行的转发可以从通知中停止。 - 自动重连。 通过 keepalive 发现断开的连接,网络变化后自动重连,并再次运行主机保存的命令。
- 后台运行。 默认离开应用后连接保持打开。也可以改为在 1、5、30 或 60 分钟后关闭。
- 同时打开多个终端。 每个主机可打开多个终端;运行中的终端按主机分组,并带实时预览。可以把主机或保存的命令添加为主屏幕快捷方式。
- 连接诊断。 连接失败时,连接诊断会逐一检查地址、端口、服务器密钥和登录,并告诉你哪一步失败。
- 锁定与隐私。 可选的指纹或面部应用锁,默认禁止截图,带密码保护的备份,没有账号、广告和统计分析。
- 本地 shell。 本机终端直接在手机上打开 shell,无需服务器。
常见问题
Termexa 支持哪些 Android 版本?
支持 Android 13 及以上版本的手机、平板和折叠屏。
可以使用哪些类型的 SSH 密钥?
可以导入 Ed25519、RSA 和 ECDSA 私钥(包括加密的私钥),也可以在应用中生成新的 Ed25519 密钥。
需要一次性验证码的服务器能用吗?
可以。OTP 验证码等 keyboard-interactive 提示会按服务器的原文显示,你的回答会发送给服务器。
支持哪些端口转发?
只支持本地端口转发:把手机 127.0.0.1 上的端口经由已保存的主机转发。不支持远程转发和动态(SOCKS)转发。
Termexa 支持 mosh 或 SSH 代理转发吗?
不支持。Termexa 只通过 SSH 连接,也不提供 SSH 代理转发。
我的密码或密钥会发送给开发者吗?
不会。它们加密保存在手机上,只用于登录你选择的服务器和跳板机。开发者没有运营任何服务器。