termux是个非常强大的终端模拟器。
官方网站
酷安网下载地址高级终端Termux组合了强大的终端模拟和拓展Linux包收集支持。
由于termux甚至支持apt命令,所以从他建立。
官方英文ssh连接说明 比较简陋,这里详细描述一下。
安装完成后,第一次打开会需要下载一些包库。下载安装包库完成进入后,先跟普通的debian一样,注意是apt,手机上执行:
apt update
再安装openssh
apt install openssh
会自动生成keygen。并给出路径地址。
在电脑上运行
ssh-keygen -t rsa
交互式地生成一个key,默认保存在 ~/.ssh/
下,两个文件 id_rsa
和 id_rsa.pub
,pub是公钥,另一个是私钥。ssh登录的原理不再赘述,自行谷歌。
通过各种方式(直接usb或者通过网络adb)adb连接到手机上,将公钥adb push到手机上
adb push ~/.ssh/id_rsa.pub /data/data/com.termux/files/home/.ssh/id_rsa.pub
通过 adb shell
进入手机,cd到 data/data/com.termux/files/home/.ssh/
,将公钥内容添加到ssh的授权文件里
cat ./id_rsa.pub >> authorized_keys
在手机上执行
whoami
得到用户名,比如得到的是 u0_a97
。
要求 .ssh
文件夹的权限是700(即 rwx------
),且用户都是termux的用户才可以。
在电脑上执行:
在 home
文件夹下执行 ll -a
,输出类似:
[email protected]
:/data/data/com.termux/files/home # ll -a -rw------- u0_a97 u0_a97 635 2016-03-06 11:20 .bash_history drwx------ u0_a97 u0_a97 2016-03-06 12:20 .ssh
如果 .ssh
文件夹不是如图权限,则
chmod 700 .ssh
所属用户和组修改:
chown u0_a97:u0_a97 .ssh
同样查看 authorized_keys
文件权限是否是600(即 rw-------
)和其owner即所属组。不是的话按上述方法修改。
此时我们的授权已经做好了
在手机上的termux里输入 sshd
开启ssh服务器,
在电脑上
ssh [email protected]
-p 8022
ip地址是手机的ip,端口默认是8022,可以通过 sshd -p 9000
来指定ssh服务器的端口。如果普通登录ssh一样,第一次连接会问你是否继续,输入yes继续,看到 $
符,ok,登录成功。
这里用户是普通用户,root用户如何ssh我还不清楚,但是由于我给小米刷了cm,cm官方wiki里有个说明,然而我没有配置成功
cm官方wiki说明ssh登录 由于是termux自己建的一个模拟用户,有 home
和 usr
两个主要的文件,默认系统的文件都在 usr
下,如源等。默认linux的源是 /etc/apt/sources.list
,则此时就变成了 /data/data/com.termux/files/usr/etc/apt/sources.list
清华有termux的源,可将源内容改成如下:
# The main termux repository: deb [arch=all,arm] http://mirrors.tuna.tsinghua.edu.cn/termux/ stable main
通过 apt update
就可以更新源啦。
手机必然至少连接路由器,在路由器里设置端口转发即可。
其实也有一些独立的ssh应用,但是termux不只是包括ssh,这里只是简单记录自己使用termux的一些经验。