如何让Android TV开机自动后台运行带端口转发的SSH连接?
Android TV上让Termux开机自动运行SSH端口转发
1. 先搞定SSH免密登录(必须步骤)
自动执行命令没法手动输入密码,所以得先配置免密登录:
- 在Termux中生成SSH密钥对:
全程按回车就行,别设置密码,否则自动运行时还是会卡在输密码环节。ssh-keygen -t ed25519 - 将公钥上传到远程服务器:
这一步需要手动输入一次服务器密码,完成后后续SSH登录就无需再验证密码了。ssh-copy-id myuser@example.com
2. 安装Termux开机自启插件
Termux本身没有开机启动权限,需要安装官方提供的termux-boot插件:
pkg install termux-boot
3. 创建开机启动脚本
- 先创建Termux的开机启动目录:
mkdir -p ~/.termux/boot - 新建启动脚本文件(比如命名为
ssh-forward.sh):nano ~/.termux/boot/ssh-forward.sh - 在编辑器中输入以下内容:
说明:#!/data/data/com.termux/files/usr/bin/bash source ~/.bashrc # 后台运行SSH端口转发,日志输出到文件方便排查问题 ssh -N myuser@example.com -L 445:localhost:445 > ~/ssh-forward.log 2>&1 &-N参数表示仅建立连接不执行远程命令,刚好适配端口转发场景;日志输出和后台运行是可选配置,出现问题时可以通过日志定位原因。 - 给脚本添加执行权限:
chmod +x ~/.termux/boot/ssh-forward.sh
4. 测试开机自启效果
重启Android TV,等待系统启动完成后,进入Termux查看日志确认是否成功:
cat ~/ssh-forward.log
如果日志没有报错,且能通过本地445端口访问远程服务器的对应服务,就说明配置生效了。
额外小贴士
- 确保Android TV开机后能正常连接网络,否则SSH连接会失败。
- 担心SSH连接意外断开的话,可以用
autossh实现自动重连:
然后把脚本中的SSH命令替换为:pkg install autosshautossh -M 0 -N myuser@example.com -L 445:localhost:445 > ~/ssh-forward.log 2>&1 &-M 0表示禁用监控端口,依赖SSH内置的心跳机制维持连接。
内容的提问来源于stack exchange,提问作者David Alsh
相关产品推荐
相关产品推荐

