一、背景:为什么我需要在 Android 设备上用 SSH?
在日常开发和运维过程中,我们经常会遇到这样的场景:
Android 设备需要作为一个中间节点,去登录远程 Linux 服务器
调试网络问题,需要从 Android 设备直接 SSH 到某台内网机器
做一些自动化、脚本验证,依赖 SSH 工具链
设备没有 UI,只能通过 adb shell 操作
问题来了:
adb shell 里并没有内置 ssh 命令。
这和我们在 Linux / macOS / WSL 里的体验完全不一样,很多熟悉的命令在 adb shell 下是缺失的。
二、直接在 adb shell 里装 SSH,行不行?
结论先说:基本不行,或者成本极高。
原因主要有几个:
adb shell 运行的是 Android 自带的 toybox / toolbox
功能极度精简
没有包管理器
没有 openssh 客户端
Android 系统分区受限
非 root 设备无法往
/system/bin写东西即便 root,也要考虑 ABI、动态库依赖
自己交叉编译
openssh,再手动处理依赖可行,但对大多数场景来说,性价比很低
所以,现实中大家基本都会寻找替代方案。
三、常见替代方案分析
方案一:把 SSH 放在 PC 上,通过 adb 转发
比如:
adb forward / reverse
Android 只做端口转发
问题:
Android 本身并不能主动 SSH
不适合“设备作为独立节点”的场景
方案二:在 Android 上跑一个完整的 Linux 用户态环境
这里就绕不开一个工具:Termux
Termux 本质上是:
一个运行在 Android 用户态的 Linux 环境
自带包管理器
可以直接安装 openssh、curl、git 等工具
这正好解决了 adb shell 的所有痛点。
四、Termux 的现实问题:没有 Google Play 怎么办?
正常情况下,官方是推荐通过 Google Play 或 F-Droid 安装 Termux 的。
但很多设备存在问题:
没有 Google Play 服务
国内网络环境不方便
公司定制 ROM,无法安装 Play Store
我的设备就属于这种情况。
五、解决方案:通过 APKPure 安装 Termux(XAPK)
1. 下载 Termux 的 XAPK
在 APKPure 上可以找到 Termux 的 XAPK 包:
包含主 APK + 架构相关资源
兼容大多数 arm64 设备
注意几点:
尽量选择较新的稳定版本
确认设备架构(一般是 arm64-v8a)
2. 安装 XAPK
安装方式有两种:
方式一:使用 APKPure Installer
把 XAPK 传到手机
用 APKPure 官方安装器打开
方式二:拆包手动安装(不推荐)
解压 XAPK
分别安装 base.apk 和 split apk
容易出错
3. 启动 Termux 并初始化环境
首次打开 Termux 后:
pkg update
pkg upgrade
这一步会初始化包管理器环境。
六、在 Termux 中安装和使用 SSH
1. 安装 OpenSSH
pkg install openssh
安装完成后,直接就可以使用 ssh 命令了。
2. 使用 SSH 登录远程设备
ssh user@remote_ip
如果是第一次连接,会提示确认指纹,正常输入 yes 即可。
3. 使用密钥登录(推荐)
生成密钥:
ssh-keygen
拷贝公钥到服务器:
ssh-copy-id user@remote_ip
之后就可以免密登录了。
七、如何从 adb shell 快速进入 Termux
如果设备没有 UI,或者你希望全程 adb 操作,也可以这样做:
adb shell
然后启动 Termux 的 shell:
am start -n com.termux/.HomeActivity
或者直接执行:
adb shell "run-as com.termux sh"
这样可以在一定程度上实现 “adb + Termux + SSH” 的组合使用。
八、这种方案的优缺点总结
优点
不需要 root
功能完整,接近 Linux 使用体验
ssh / scp / rsync 都可用
成本低,稳定性高
缺点
依赖第三方安装源(如 APKPure)
Termux 本身是用户态环境,不是真正系统级
对极端精简设备不一定适用
九、总结
当你发现:
adb shell 里没有 ssh
又确实需要 Android 设备主动连接远程服务器
那 Termux 基本是当前最现实、最省事的方案。
即便没有 Google Play,通过 APKPure 安装 XAPK 也完全可行,后续使用体验和官方版本差异不大。
如果你只是偶尔用 SSH,这套方案已经足够;
如果你需要在 Android 上做更多类 Linux 的事情,Termux 甚至可以成为一个长期工具。