欢迎光临
我们一直在努力

Linux 安卓手机安装Termux,电脑ssh连接

参考资料

  • Termux 入门教程:架设手机 Server 下载文件

  • 目录

    • 一. 简介
    • 二. 初始化配置
      • 2.1 开启`Termux`开启存储
      • 2.2 安装`termux-services`
        • 2.2.1 `sv-enable` 与 `sv up`的区别
      • 2.3 安装并开启ssh服务
      • 2.4 查看用户名与设置密码
      • 2.5 查看Termux的局域网ip
      • 2.6 保持Termux唤醒
    • 三. 免密登录配置
    • 四. 电脑远程连接手机的Termux
    • 五. 自定义ssh登录画面
    • 六. 修改终端修饰符

    一. 简介

    ⏹Termux 是 Android 上的 Linux 终端环境,它让手机变为一个迷你 Linux 服务器,可以在手机上直接运行:

    • Linux 命令(ls、cp、grep、ssh、rsync…)

    • 各种编程语言(Python、Node.js、PHP、Go…)

    • 各种服务器(SSH、SFTP、HTTP、代理服务器…)

    • 包管理工具(pkg、apt)

    Termux 的其本质是:把 Linux 用户空间带到安卓手机里,并且手机不需要 root。

    ⏹Termux还可以配合Termux:API访问手机硬件(需要另外安装Termux:API),安装后可以实现如下功能:

    • 读写剪贴板

    • 读取定位

    • 发通知

    • 震动

    • 控制亮度

    • 读取短信

    • 打开相机

    • 调用系统分享

    ⏹官网下载

    • https://termux.dev/cn/index.html
    • https://github.com/termux/termux-app/releases

    二. 初始化配置

    ⏹安装之后,软件的启动页面如下所示

    在这里插入图片描述

    2.1 开启Termux开启存储

    termux-setup-storage

    2.2 安装termux-services

    ⏹默认情况下,Termux 的程序 只要离开终端(例如我们将手机锁屏)就会终止。 而安装 termux-services 后就可以让在Termux后台一直运行,termux-services,是一个 服务管理框架,可以在 Termux 中:

    • 创建自己的后台服务
    • 让服务在后台持续运行
    • 使用简单命令管理服务(start/stop/restart)
    • 服务不需要保持终端打开

    pkg install termux-services

    💥安装完成之后,需要重启Termux

    ⏹termux-services的主要命令

    # 启用服务
    sv-enable 服务名
    # 禁用服务
    sv-disable 服务名

    # 启动服务
    sv up 服务名
    # 停止服务
    sv down 服务名

    # 重启服务
    sv restart 服务名
    # 查看服务状态
    sv status 服务名

    2.2.1 sv-enable 与 sv up的区别

    • sv-enable → 【把服务加入后台管理体系 + 启动】
    • sv up → 【启动服务(前提是已经被管理)】

    ⏹当我们通过sv-enable <服务名>启动服务时,termux-services会帮我们做两件事

    • 把服务注册到 runit 管理中# 只有在 var/service 中的服务才会被 runit 管理。
      $PREFIX/var/service/<服务名>$PREFIX/etc/sv/<服务名>
    • 启动服务(让服务后台运行)# 相当于在后台执行下面的命令
      sv up 服务名

    ⏹当我们通过sv up <服务名>启动服务时

    • 前提:服务必须已 enable
    • 只会启动已经被 runit 接管的服务,不会 enable,不会创建 symlink
    • 如果服务在 $PREFIX/var/service 中不存在(未 enable),sv up 会报错或无效。

    2.3 安装并开启ssh服务

    ⏹安装openssh

    pkg install openssh

    ⏹通过termux-services启动 ssh-agent 后台服务

    sv-enable ssh-agent

    # 查看ssh-agent状态
    sv status ssh-agent
    # 停止ssh-agent服务
    sv down ssh-agent

    ⏹通过termux-services启用sshd(SSH服务)自动启动 💥Termux 默认 SSH 端口是 8022

    sv-enable sshd

    # 查看sshd状态
    sv status sshd

    ⏹当我们的服务安装完成之后,都存储在下面的路径中。

    ~ $ ls -l "$PREFIX/var/service"
    drwx——. 4 u0_a362 u0_a362 3488 Nov 25 08:40 ssh-agent
    drwx——. 4 u0_a362 u0_a362 3488 Nov 25 08:43 sshd

    2.4 查看用户名与设置密码

    ⏹通过下面的命令查看当前的用户名

    whoami

    ⏹设置当前用户名对应的密码

    passwd

    2.5 查看Termux的局域网ip

    ifconfig

    2.6 保持Termux唤醒

    ⏹通过下面的命令,防止Android 休眠导致网络断开,保持唤醒。

    termux-wake-lock

    ⏹APP的通知栏中也提供了保持Termux唤醒的功能。

    在这里插入图片描述

    ⏹还需要在TermuxAPP的启动管理设置中进行如下设置(不同手机的设置位置不同)

    • 禁止手机对其自动管理
    • 还需要设置app允许在后台运行
    • 需要允许自启动

    三. 免密登录配置

    在这篇文章中,我介绍了 Linux ssh 免密登录配置 的方法,参照其配置后,可免密登录,此处只简单展示重点命令。

    • 将本机(Windows)生成的公钥密钥传输到Termux中
    • 由于生成密钥对之后,我将私钥单独放到了另外的文件夹中,所以下面的命令中使用-f指定强制只传输公钥,忽略私钥。

    ssh-copy-id -f -i ~/.ssh/id_rsa.pub -p 8022 u0_a362@192.168.3.23

    • 然后就可以在使用ssh命令的时候,指定私钥所在的路径,然后就可以实现无密码登录了。

    ssh -p 8022 u0_a362@192.168.3.23 -i D:\\id_rsa


    四. 电脑远程连接手机的Termux

    ⏹通过ssh命令,需要密码远程连接Termux

    ssh -p 8022 u0_a362@192.168.3.23

    在这里插入图片描述

    ⏹指定私钥后,免密登录。

    ssh -p 8022 u0_a362@192.168.3.23 -i D:\\id_rsa

    在这里插入图片描述

    ⏹每次都使用命令行去登录其实也很繁琐,可以对Windows的terminal进行配置,直接点击登录

    在这里插入图片描述


    五. 自定义ssh登录画面

    ⏹如果想个性化显示ssh登录画面的话,需要修改两个文件

    ~ $ ls -l $PREFIX/etc/motd ~/.bashrc
    -rw——-. 1 u0_a362 u0_a362 671 Nov 30 19:54 /data/data/com.termux/files/home/.bashrc
    -rw——-. 1 u0_a362 u0_a362 826 Nov 30 19:39 /data/data/com.termux/files/usr/etc/motd

    ⏹修改进入Termux后的Logo

    cat > $PREFIX/etc/motd <<'EOF'
    ████████╗███████╗██████╗ ███╗ ███╗██╗ ██╗██╗ ██╗
    ╚══██╔══╝██╔════╝██╔══██╗████╗ ████║██║ ██║╚██╗██╔╝
    ██║ █████╗ ██████╔╝██╔████╔██║██║ ██║ ╚███╔╝
    ██║ ██╔══╝ ██╔══██╗██║╚██╔╝██║██║ ██║ ██╔██╗
    ██║ ███████╗██║ ██║██║ ╚═╝ ██║╚██████╔╝██╔╝ ██╗
    ╚═╝ ╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝
    EOF

    ⏹显示系统信息

    ~ $ cat ~/.bashrc
    # ===== Fancy Colorful Termux Info =====
    RED='\\033[1;31m'
    GREEN='\\033[1;32m'
    YELLOW='\\033[1;33m'
    CYAN='\\033[1;36m'
    WHITE='\\033[1;37m'
    NC='\\033[0m'

    echo -e "${CYAN}=============== System Info ===============${NC}"

    # Time
    echo -e "${YELLOW}🕒 Time: ${WHITE}$(date +"%Y-%m-%d %H:%M:%S")"

    # IP Address
    WLAN=$(ifconfig 2>/dev/null | grep 'inet ' | awk '{print $2}' | grep -v 127.0.0.1)
    echo -e "${YELLOW}📶 IP(WiFi): ${WHITE}${WLAN:-No WiFi}"

    # Storage
    STORAGE=$(df -h /storage/emulated/0 | awk 'NR==2 {print $3 "/" $2 " (" $5 ")"}')
    echo -e "${YELLOW}💾 Storage: ${WHITE}${STORAGE}"

    echo -e "${CYAN}=============================================${NC}"

    ⏹重启Termux之后,再次ssh连接到Termux后的效果如下

    在这里插入图片描述


    六. 修改终端修饰符

    ⏹Termux的终端提示符默认是 ~ $ ,没有用户名和主机IP显示。可以在~/.bashrc文件中进行配置

    • 在该文件的最后一行添加下面的配置
    • $WLAN 变量是在 五. 中介绍过的用户存储ip地址的变量

    PS1="\\[\\e[32m\\]\\u\\[\\e[0m\\]@\\[\\e[36m\\]\\$WLAN\\[\\e[0m\\]:\\[\\e[33m\\]\\w\\[\\e[0m\\]\\$ "

    ⏹配置完成之后,再次登录Termux,可以看到如下效果

    在这里插入图片描述

    赞(0)
    未经允许不得转载:171主机测评 » Linux 安卓手机安装Termux,电脑ssh连接
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址