登陆termux openssh服务器异常记录
最近在学习使用termux,在我的MI6手机上安装好termux apk,pkg update更新完毕,python,vim,tsu等工具软件都安装好了。
但是在手机上输入命令真的是太费时间了,两个手指头打字速度跟蜗牛爬一样,所以我考虑如何用电脑控制termux,这样输入速度才能提高。
第一种方法:AirDrod。
AirDrod这种远程控制软件有他的优点缺点:
优点:简单,教程方便,一般都有商业公司来维护。
缺点:操作延时太长,有键盘输入异常,部分按键不能输入,这个对linux命令行输入影响太大。
所以我放弃了第一种方法。
第二种方法,使用SSH。
优点:可以使用电脑命令行直接控制termux命令行,速度快,配合共享文件夹,简直就是在直接控制电脑一样。
缺点:SSH还是有一些难度,尤其是对我这种网络小白来说。网上的教程多少不能包含所有问题。
教程链接:https://www.jianshu.com/p/7ae5383d066d
按照网上给的教程,使用pkg install openssh安装好SSH 软件。
输入sshd打开SSH server,这时SSH服务器就打开了。
使用 logcat -s 'syslog' 查看sshd工作情况和监听端口。这个命令很有用,任何跟sshd相关的操作记录都可以用这个命令看到。推出这个命令用CTRL+C。我登陆SSH的问题就是用这个命令发现的。
在电脑端,我用的是WIN10自带的openssh应用,具体怎么添加网上有教程,非常简单。
打开WIN10的 powershell命令行工具,记得用管理员身份打开,不然会报错。
在powershell命令行输入 ssh-keygen 生成私钥和公钥文件id_rsa和id_rsa.pub两个文件,默认保存在c:\User\Administors\.ssh\ 路径下,.ssh文件夹默认是隐藏的。
在手机端,在termux输入命令termux-setup-storage,把手机存储目录共享到termux,在termux的/home/storage/shared/路径下。这是往手机存储根目录下复制粘贴文件就能在termux看到了,这个很有用。
将id_rsa.pub文件拷贝到手机存储根目录里,在termux的shared文件夹里你会看到这个文件。
termux命令行输入 cp /storage/shared/id_rsa.pub ./.ssh ,将公钥文件拷贝到.ssh 文件夹中。
在.ssh文件夹路径中输入命令,cat id_rsa.pub >> authorized_keys,把id_rsa.pub文件里的公钥信息添加到authorized_keys文件里。
使用 whoami查看termuxname,ifconfig查看手机ip地址。
在电脑端powershell里输入 ssh termuxname@ip -p 8022 ,就会提示登录成功了。以上是网上找到的教程。
但是我在powershell里却提示我要输入登陆密码,termux是不支持密码的,已经有公钥了为什么还要密码呢?
在termux命令行输入 logcat -s 'syslog' 查看log信息,发现登陆SSH时失败了,并提示 authentic key failed: bad ownership or mode...
log信息显示.ssh和authorized_key文件的分组不对,网上按照错误信息查找,网友提到openssh对ownership有特殊要求,按照网友说的修改如下:解答网页链接: https://www.daveperrett.com/articles/2010/09/14/ssh-authentication-refused/
chmod 700 .ssh
chmod 600 .ssh/authorized_keys
重新在powershell登陆SSH,然后成功了!!!