termux玩法教程(一)
主要介绍自己最近制作面具模块时, 为了方便调试, 所研究的电脑端免密远程登陆手机termux以及sftp, 涉及zsh oh-my-zsh termux-services openssh tsu等安装使用.
最终实现的效果如图所示.
所涉及的软件
1.安装termux-services, 用于服务管理, 类似与linux systemctl. 安装openssh, 用于远程登陆
pkg up #更新软件
pkg install termux-services
pkg install openssh
之后需要重启一下termux
2.启用sshd服务
sv status sshd # 查询sshd状态, 发现没有启用
#~ down: sshd: 9s; run: log: (pid 15686) 9s
sv-enable sshd # 启用
#~ run: sshd: (pid 15767) 4s; run: log: (pid 15686) 65s
3.安装zsh oh-my-zsh以及常用的插件zsh-autosuggestions zsh-syntax-highlighting zsh-history-substring-search, 嘎嘎好用
sh -c "$(curl -fsSL https://raw.githubusercontent.com/linuxscreen/termux/main/zsh-install.sh)"
现在可以命令提醒和高亮了, 这里介绍下zsh-history-substring-search, 用于搜索之前执行过的命令, 例如忘记了启用sshd服务的完整命令, 就可以先输入sshd, 然后按方向键上, 得到上次执行的命令sv-enable sshd
4.都安装了termux, 想必应该都安装了面具或者KernelSU, 获取了root权限, 但是如果直接用su
切换root, 就没法使用oh-my-zsh了, 这里推荐安装tsu
pkg install tsu
tsu
# root用户zsh配置, 这里直接软链接termux普通用户的配置即可
ln -s ~/../.oh-my-zsh ~/.oh-my-zsh
ln -s ~/../.zshrc ~/.zshrc
# 退出然后重新切换就生效了
exit
tsu
5.powershell上远程登陆termux
# 退出tsu
# 首先分别在termux和powershell中执行ssh-keygen, 一路回车
ssh-keygen
# termux上公钥文件写入authorized_keys
cat ~/.ssh/id_ed25519.pub >> ~/.ssh/authorized_keys
# 复制termux私钥文件到电脑, 这里重命名为termux_private_key
/data/data/com.termux/files/home/.ssh/id_ed25519 >> C:\Users\<username>\.ssh\termux_private_key
# 电脑端进入目录C:\Users\<username>\.ssh, 新建文件config, 内容如下:
---------------------------------------------------------
Host umi # 自定义
HostName 192.168.123.168 #手机的ip地址,termux上ifconfig获取
Port 8022 # termux ssh默认端口为8022
User root # 随便填,建议直接root
ServerAliveInterval 60
ServerAliveCountMax 3
PreferredAuthentications publickey
IdentityFile ~/.ssh/termux_private_key # 私钥文件名
--------------------------------------------------------
现在打开powershell或者windows terminal, 输入命令ssh termux
即可连接到手机termux, 输入tsu即可切换root用户
6.配置winscp可以root登陆termux sftp, 方便文件管理
# 手机termux端执行以下命令, 注意使用普通用户
cd /data/data/com.termux/files/usr/etc/ssh/
cp ~/../usr/etc/ssh/sshd_config ~/../usr/etc/ssh/sshd_config.back # 备份原配置文件
echo "PrintMotd yes\nPasswordAuthentication yes\nPermitRootLogin yes\nPubkeyAuthentication yes\nAuthorizedKeysFile /data/data/com.termux/files/home/.ssh/authorized_keys\nStrictModes no\nSubsystem sftp /data/data/com.termux/files/usr/libexec/sftp-server" > ~/../usr/etc/ssh/sshd_config # 写入新配置文件
# 切换root, 执行以下命令
tsu
chown root:root /data/data/com.termux/files/usr/var/empty # 解决报错
sshd -p 2222 # 设置root用户sshd后台运行, 端口2222
电脑端安装putty和winscp, 执行以下操作
-
打开PuTTY Key Generator: Conversions->import key->选择私钥文件(termux_private_key)->save private key->忽略警告->导出文件
-
winscp新建节点, 输入手机ip, 端口2222, 用户名root 高级->SSH->验证->秘钥文件->选中刚才生成的文件(ppk格式)->确认->保存
登陆即可, 至此实现开头的效果
效果图左边使用的远程控制软件为 QtScrcpy