在 adb shell 没有 SSH 的情况下,如何在 Android 设备上实现远程 SSH 连接

在 adb shell 没有 SSH 的情况下,如何在 Android 设备上实现远程 SSH 连接

一、背景:为什么我需要在 Android 设备上用 SSH?

在日常开发和运维过程中,我们经常会遇到这样的场景:

  • Android 设备需要作为一个中间节点,去登录远程 Linux 服务器

  • 调试网络问题,需要从 Android 设备直接 SSH 到某台内网机器

  • 做一些自动化、脚本验证,依赖 SSH 工具链

  • 设备没有 UI,只能通过 adb shell 操作

问题来了:
adb shell 里并没有内置 ssh 命令。

这和我们在 Linux / macOS / WSL 里的体验完全不一样,很多熟悉的命令在 adb shell 下是缺失的。


二、直接在 adb shell 里装 SSH,行不行?

结论先说:基本不行,或者成本极高。

原因主要有几个:

  1. adb shell 运行的是 Android 自带的 toybox / toolbox

    • 功能极度精简

    • 没有包管理器

    • 没有 openssh 客户端

  2. Android 系统分区受限

    • 非 root 设备无法往 /system/bin 写东西

    • 即便 root,也要考虑 ABI、动态库依赖

  3. 自己交叉编译 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 甚至可以成为一个长期工具。

关于飞牛 fnOS 近期 0-day 漏洞的一些技术性思考 2026-02-02

评论区