梗概:
这个使用场景比较少,但是既然要打造中国的 Termux 文档的效果,还是一起写上去吧 首先确保你已经安装了 openssh 软件包,没有安装的话参考上一个小结进行安装,实现这个效果有两大种方法:
- SSH 通过密码认证连接
- SSH 通过公私钥连接
- PC 端生成公私钥,然后将 公钥 拷贝到 Termux 中,通过公私钥连接。
- Termux 端生成公私钥,然后将 私钥拷贝到 PC 中,通过公私钥连接。
1. 启动 ssh 服务
安装完成后,sshd服务默认没有启动,所以得手动启动下:
bash
sshd因为手机上面低的端口有安全限制,所以这里 openssh 默认的 sshd 默认的服务端口号为 8022

2. 停止 ssh 服务
如果需要停止 ssh 服务,只需要 kill 杀掉进程即可:
bash
pkill sshd3. 通过密码认证链接
Termux 默认是使用密码认证进行连接的,如果要启用密码连接的话要确保你的密码足够安全,否则你的SSH被恶意攻击者连接或者爆破成功的话,那就美滋滋了!
Termux 下的 SSH 默认配置文件的路径为 $PREFIX/etc/ssh/sshd_config,我们来查看下这个配置文件:
sshd_config
PrintMotd no
PasswordAuthentication yes
Subsystem sftp /data/data/com.termux/files/usr/libexec/sftp-server国光的 Termux 0.94 的版本就这3行配置,下面来逐行解释一下这个配置:
PrintMotd : 是否显示登录成功的欢迎信息 例如上次登入的时间、地点等
PasswordAuthentication: 是否启用密码认证
Subsystem: SFTP 服务相关的设定
3.1. 设置新密码
执行 passwd 命令可以直接修改密码:
bash
passwd
密码不要忘记哦
3.2. 电脑远程连接测试
国光测试了一下 Termux 的 ssh 和常规 Linux 不太一样,连接的时候不需要指定用户名。
bash
ssh 192.168.31.124 -p 8022
4. 通过公私钥连接
公私钥连接更加安全,再也不用但你的 Termux SSH 被黑客爆破攻击的情况了
4.1. PC 端生成公私钥
首先在PC端生成秘钥对:
bash
ssh-keygen默认一直回车下去:

此时会在~/.ssh目录下生成 3 个文件
id_rsa, id_rsa.pub,known_hosts
然后需要把公钥 id_rsa.pub 拷贝到手机的 data\data\com.termux\files\home.ssh 文件夹中。然后
将公钥拷贝到验证文件中
在Termux下操作:
bash
cat id_rsa.pub > authorized_keys
OK 现在你已经设置好公私钥了,那么修改一下 SSH 的配置文件,关掉密码登录吧:
bash
vim $PREFIX/etc/ssh/sshd_config找到:
bash
PasswordAuthentication yes 修改为:
bash
PasswordAuthentication no然后记得重启一下 SSH 服务:
bash
pkill sshd;sshd然后电脑端这边直接就可以通过公私钥连接了,无需输入密码也更加安全:
bash
ssh 192.168.31.124 -p 8022
4.2. Termux 端生成公私钥
操作完上一步之后,我想你大概已经知道了公私钥的原理了。那么我们现在尝试在 Termux 端生成公私钥这种方法试试看,理论上也是可以的。
首先在 Termux 端生成秘钥对:
none
ssh-keyge此时会在~/.ssh目录下生成 3 个文件
id_rsa, id_rsa.pub,known_hosts
然后将公钥拷贝到验证文件中
bash
cat id_rsa.pub > authorized_keys
接着将id_rsa.pub私钥下载下来,拷贝到PC端上,并赋予 600 的权限:
bash
chmod 600 id_rsa然后通过-i 手动加载私钥的方式也可以成功连接到 Termux:
bash
ssh -i id_rsa root@192.168.31.124 -p 8022
Bingo!
至此,Termux SSH 连接的 3 种方式都演示过了,国光个人比较建议使用 PC 端生成公私钥 的方法,这样可以减少 rsa 私钥泄露的风险,也方便 PC 端的远程连接与管理。