用 SSH + Termux 玩旧手机
把一台安卓旧手机变成"随身 Linux",电脑通过 SSH 免密登录 Termux,当作常开的小服务器或终端玩具机。
核心链路
电脑 ssh → 手机 Termux 的 sshd(默认端口 8022)→ 安卓本地 shell。
电脑(任意终端) ──SSH:8022──> Termux(sshd) ──> Android Linux 环境手机端准备(Termux 里执行)
pkg install -y openssh # 安装 SSH 服务端
passwd # 设置登录密码(备用)
sshd # 启动服务端,监听 8022
whoami # 记下用户名(形如 u0_aXXX)
ip addr show wlan0 # 查手机 IP(wlan0 的 inet 那行)电脑端免密登录
- 电脑生成密钥:
ssh-keygen -t ed25519(已有可跳过) - 把电脑公钥写入手机
~/.ssh/authorized_keys,权限必须 600 - 连接:
ssh -p 8022 用户名@手机IP
踩坑记录
authorized_keys 粘贴丢空格:手机终端复制长命令,极易把
ssh-ed25519与密钥之间的空格吞掉 → 报Permission denied。
解法:用双变量拼接,从源头避免丢空格:KEY1='ssh-ed25519' KEY2='密钥串' printf '%s %s\n' "$KEY1" "$KEY2" > ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys手机"全局代理"不覆盖 Termux:Clash/v2ray 的系统代理模式只对部分 app 生效,Termux 终端进程不读它 →
pkg update全 error。
解法:让手机走电脑的代理(电脑端代理若只绑 127.0.0.1,手机够不着;需绑 0.0.0.0):export http_proxy=http://电脑IP:7897 export https_proxy=http://电脑IP:7897- IP 是 DHCP 动态的:连不上先查新 IP(
ip addr show wlan0)。 - 重启后 sshd 没了:Termux 无开机自启,安卓后台会杀进程。需要
termux-boot+termux-wakelock。 - 主机指纹变化:报 host key 验证失败时
ssh-keygen -R '[IP]:8022'清掉旧指纹。 ss命令在 Termux 可能不存在:检测端口用timeout 2 bash -c "echo > /dev/tcp/127.0.0.1/端口"更稳。pgrep -f/pkill -f易误杀 SSH 通道:命令行含关键字时会把承载 SSH 的 bash 也匹配上,慎用。
玩法
- 终端玩具:
cmatrix、cowsay、figlet、sl、hollywood - 小游戏(需真终端):
nethack、bsdgames、tty-solitaire - 当常驻小服务器:跑 web server、bot、定时脚本,手机当"个人云"
相关
- SSH 协议
- Android+Termux 当服务器有多难 (Android+Termux as a Server)——为什么当不了"真服务器"的坑位分析
- GraphRAG (图检索增强生成)(同目录 LLM 笔记,无关但格式参考)
本文归档于个人知识库 · 领域:CS & AI · 模块:04 Project_CS_AI/Network