Termux 上安装并启动 OpenSSH 服务端:局域网登录手机里的 Linux 环境
古董级程序员,大厂出来后一直在创业公司,现在仍活跃在一线做 AI 相关的开发。更完整的更新写在微信公众号「字与码」:工作经历、对新技术的想法,以及这些年走弯路的记录,会不定期发在那里。若觉得博客对你有用,欢迎顺手关注。
Termux 可以在 Android 上跑Linux终端,包括最小 Linux 用户态环境,包管理用 pkg / apt。我们安装 openssh 后可以直接在局域网里 ssh 登录手机,比在手机的小屏上操作方便得多。下面根据termux.dev 文档站的指向,以及 Termux 打包里 OpenSSH 的默认配置(监听 8022 端口,见 termux-packages 的 sshd_config 补丁)为准,并叠了我自己踩坑时常见的排错点。
安装 Termux
Wiki 主站说明写得很清楚:从 F-Droid 获取构建,不要从 Google Play 装(Play 上的旧分支以及更新节奏问题社区里争论很多,跟本文主题无关)。我是从github的release下载的apk包,应该是与F-Droid上下载的一样。要注意的是选对apk包,这个是分cpu架构的,不过手机的cpu大多都是arm64的,例如高通的骁龙系列,不确定的话可以网上搜一下。
安装 OpenSSH 并准备账号
在 Termux 里执行:
pkg update
pkg install openssh
装完后终端里可能会打出主机密钥的 randomart,并提示:若要用 ssh-agent,可安装 termux-services(基于 runit 的服务管理),再用 sv-enable 打开服务。这与「手动每次输入 sshd」不冲突,只是多一条自动拉起的路径。

如果希望走服务管理,可以这样:
pkg install termux-services # 简写 pkg i termux-services 亦可
sv-enable sshd # 之后每次进入 Termux 环境时更易自动带上 sshd(依赖 termux-services 的工作方式)
# 可选:需要 ssh-agent 常驻时再执行
# sv-enable ssh-agent
具体以你本机 pkg install openssh 结束时的提示为准;若暂时不用 runit,只执行下面的 sshd 也一样能连。
openssh 这一包同时带 客户端 ssh 和 服务端 sshd。Termux 是单用户场景,登录名一般是 whoami 看到的那个(形如 u0_a***),默认没有可用于 SSH 的密码,需要你自己设:
passwd
按提示设强密码;这只影响你从网络侧用密码登录,不等于给 Android 系统账户「加锁」。
主机密钥(第一次启动若报错再做)
若直接运行 sshd 时出现 no hostkeys available 一类错误,说明主机密钥还没生成,执行:
ssh-keygen -A
再启动 sshd。社区 issue 里也常把这步当作标准修复(主机密钥应在 $PREFIX/etc/ssh/ 下,Termux 里 PREFIX 通常是 /data/data/com.termux/files/usr)。
启动 SSH 服务
sshd
没有报错即表示守护进程已在后台监听。Termux 打包的 sshd 默认端口是 8022(不是 22,因为低端口在 Android 上往往是特权端口)。可用下面命令确认监听:
# ss命令如果没有,根据提示进行安装
ss -nlt
# 或
nmap -p 8022 localhost
若提示 8022 已被占用,可能是上次 sshd 还在,可先 pkill sshd 再开,或查清是否别的程序占了端口。
从电脑连接
在手机上看 IP:Wi‑Fi 下常用 ip addr 看 wlan0 的地址,或热点模式下网关往往是 192.168.43.1 一类,以你机器实际输出为准。用户名请用 Termux 里 whoami 的输出(不要想当然用 Linux 服务器上的 root,除非你确认本机 sshd 配置确实允许且账户存在)。
在电脑终端执行(把 用户 和 IP 换成你的):
ssh -p 8022 用户@IP
第一次连会提示主机指纹,输入 yes 写入 known_hosts,再输入 passwd 设的密码。下面是一张在 PC 上连到手机 Termux 的实机截图(命令里用户名以你手机为准;图里仅为当时局域网测试写法)。

更省事的做法是在电脑生成密钥对,把 公钥 写进 Termux 里的 ~/.ssh/authorized_keys(没有就建目录和文件),以后可关掉密码登录或减少暴力破解面。具体 authorized_keys 权限需符合 OpenSSH 要求(目录 700、文件 600 这类常规约定)。
高级配置可编辑 $PREFIX/etc/ssh/sshd_config,改端口、开关密码登录等;改完重启 sshd。
Android 侧:权限与后台(不然 sshd 说没就没)
Termux 不是系统服务,省电策略、后台清理、锁屏休眠都会让 sshd 进程消失或不再接受新连接。各厂商菜单名字不一样,但大致要检查这几类(在系统「设置」里搜应用名 Termux):
电池与后台
- 电池优化 / 省电策略:对 Termux 选 无限制、不限制 或 允许后台高耗电(MIUI、ColorOS、HarmonyOS 等常有独立开关)。
- 后台活动 / 允许后台运行:打开;若有 「后台弹窗」「关联启动」(国产 ROM),给 Termux 放行,避免从 PC 唤醒场景下被链式拦截。
多任务与通知
- 从 最近任务 进入 Termux 卡片,若有 锁形图标 或「锁定应用」,锁上,减少被一键清理划掉。
- 通知权限 打开;Termux 常驻通知有时能帮系统识别「仍在使用」,别随手关掉「所有通知」。
网络与休眠(视机型)
- Wi‑Fi 高级设置里若有 「休眠时始终保持网络」 / 锁屏不断网,需要长时间 SSH 时可打开,否则锁屏后 ARP 或 Wi‑Fi 节能可能导致间歇断连。
- 若只有 移动数据,注意运营商 NAT 与热点策略;局域网调试优先 Wi‑Fi 或手机开热点给电脑连。
进阶(按需)
- 安装 Termux:API 后可用
termux-wake-lock拿 Wake Lock,减轻 CPU 休眠带来的异常(仍挡不住被用户划掉进程)。 - 开机自启:插件 Termux:Boot(Wiki Addons)在
~/.termux/boot/下放脚本执行sshd或sv-enable相关逻辑;配合上面电池白名单才稳。
仍要接受一点现实:用户强行结束 Termux、重启手机、极端省电,都会让 SSH 断掉,需要重新进一次 Termux 或等 Boot 脚本跑起来。
使用上几个现实约束(小结)
- 手动路径:每次需要远程时打开 Termux,执行
sshd(或已sv-enable sshd则依赖 termux-services)。 - 自动路径:
termux-services+sv-enable sshd,或 Termux:Boot + 启动脚本,并配合本节 电池/后台白名单。
安全提醒:把 sshd 暴露在公网或陌生 Wi‑Fi 前要三思,至少强密码或仅密钥、必要时改端口、配合防火墙或 VPN;手机上的 SSH 更多是「同一局域网内图方便」,不是默认当公网服务器用。
小结
| 步骤 | 命令或要点 |
|---|---|
| 安装 | pkg update → pkg install openssh |
| 密码 | passwd |
| 主机密钥 | 若报错再 ssh-keygen -A |
| 启动 | sshd |
| 连接 | ssh -p 8022 $(whoami)@手机IP(用户名以 Termux 内 whoami 为准) |
| 可选自启 | pkg install termux-services → sv-enable sshd |
| 后台稳一点 | 电池无限制、允许后台、多任务锁定、必要时 wake-lock / Termux:Boot |
更完整的生态说明仍以你能打开的 Termux Wiki 与正在迁移中的 termux.dev 文档为准;若某条命令在你当前 Termux 版本上行为变了,以 pkg show openssh 和官方仓库 issue 为准。