什么是Termux?
Termux是一款能够为Android手机提供Linux环境的应用。可以理解为自带pkg包管理器的终端,可以很方便的安装其他linux应用。假如用到更高级的功能,可能需要root。
安装Termux
百度自行搜索安装,或直接下载我整合的资源包
安装sshd
打开 Termux 会出现一个类似Linux终端的界面。
由于sshd是包含在openssh包中的,因此我们首先需要在Termux中安装openssh
$ apt install openssh
安装好之后,我们需要手工启动 sshd
$ sshd
需要指出的是, sshd 监听的是8022端口而不是22号端口,因此可以使用下面命令来验证ssh服务是否开启
$ ssh localhost -p 8022
若要查看sshd的日志,则可以在Termux上执行
$ logcat -s 'syslog:*'
通过密码登陆
通过whoami
命令获得当前用户名
$ whoami
u0_a173
使用passwd
修改密码
$ passwd
New password:
Retype new password:
New password was successfully set.
之后即可在客户端通过以下命令远程登陆了
$ ssh 用户名@手机IP地址 -p 8022
如:
$ ssh u0_a173@localhost -p 8022
通过密钥登陆
在linux客户机上生成密钥对
$ ssh-keygen
把linux客户机上的公钥加到Termux中的 .ssh/authorized_keys
,这一步比较麻烦
因为你无法使用 ssh-copy-id
,只能先把 id_rsa.pub
拷贝到手机上,再在手机上打开该文件,拷贝文件内容后在Termux中用 vi 打开 authorized_keys
,并复制内容进去.
不过如果linux客户机上本身也开启了ssh服务的话,则会简单很多,可以在Termux上执行
$ ssh u0_a173@localhost "cat ~/.ssh/id_rsa.pub" >> ~/.ssh/authorized_keys
就行了,其中localhost
为linux客户机的地址,u0_a173
为登陆用户
客户端登陆
$ ssh 192.4.4.9 -p 8022
将这里的 192.4.4.9
修改为手机的ip,就能登陆到Termux中了。
手机ip可以通过在 Termux 中运行 ifconfig -a
来查看。
需要说明的是,使用ssh登陆Termux时无需带上用户名,因为Termux是单用户系统。即使你登陆时带上了用户名,Termux也会忽略该用户名
为了方便,我们可以配置一下ssh client的配置文件,将下面内容加入到 ~/.ssh/config
文件中
$ Host termuxHostName 192.4.4.9Port 8022
这样只需要执行 ssh termux
就能登陆termx了。