Android之Termux终端

一、SSH

为方便笔记本访问手机Termux,开启SSH Server:

参考 Using SSH ,由官方帮助了解到:

1、Termux下的sshd缺省端口是8022

2、通过ssh-keygen生成密钥

3、私钥放在~/.ssh/authorized_keys中,来验证ssh登录

4、Termux是单用户系统,ssh登录不能通过用户名与密码,只能通过公钥、私钥方式登录
1、Termux端操作:
apt update

apt install openssh #在/data/data/com.termux/files/usr/etc/ssh下生成rsa、dsa、esdsa三对密钥对,有啥用?通过命令whoami可以查看查看Termux用户名,例如u0_a181,其实通过名利ls -al看任意文件详情也可以看到Termux用户名

ssh-keygen #可以省略参数-t rsa

cd ~/.ssh #看到生成的三个文件,私钥:id_rsa、公钥:id_rsa.pub、空文件authorized_keys。chmod命令不需要执行,因为查看文件已经是600、目录已经是700权限了。

cat id_rsa.pub >> authorized_keys

ssh localhost -p 8022 #本地ssh登录,测试OK

cp ~/.ssh/id_rsa /sdcard #复制私钥(为什么?)到Android手机根目录下,通过airdroid传输到PC端

sshd #start the ssh server,可以通过pkill sshd停止服务进程
2、PC端
在id_rsa目录下启动git bash #将id_rsa文件复制到Windows用户下的.ssh目录,例如C:\Users\qdmca.ssh

ssh 192.168.2.108 -p 8022 -i id_rsa #顺利登录手机,庆贺!不需要类似ssh u0_a181@192.168.2.108 -p 8022 指定用户名,还有将id_rsa复制到Windows用户的./ssh目录下,用ssh 192.168.2.108 -p 8022登录手机,会提示密钥格式非法,为什么?还需要试用msys2环境登录试试。
其他基本命令:
apt list #列出可用的软件包

apt install nmap #安装端口扫描工具,大约占用25M磁盘空间

apt install python #安装python,安装了3.6.1版本

ps #查看当前手机运行进程

cat /proc/cpuinfo #查看手机硬件配置

ssh root@ip -p port #例如 ssh root@www.zhangqihui.tk就可以登录我的VPS,ssh pi@www.greydesign.tk 登录家里的树莓派服务器
不对啊!我的树莓派是通过DMZ访问的,与路由器用的是同一个公网ip地址,岂不是登录了路由器的22端口了?幸亏路由器缺省是关闭ssh的。
路由器从6.6版本升级梅林固件到7.4,无法远程访问路由器了,,由于宽带提供商屏蔽了缺省的80端口。
需要手工配置为其他端口,比如以前我用的8085。这次升级我通过https管理路由器,端口就是8443了。
用SCP命令复制文件,应该比在windows界面下拷贝稳定吧?

二、配置C开发环境

pkg install clang #安装c语言开发环境,apt也可以吧?

apt install vim

mkdir c

cd c

vim hello.c

gcc -o hello hello.c

chmod +r hello

./hello

三、配置golang开发环境

pkg install golang

go version

四、通过证书配置ssh访问github账户(meizu Pro5):

pkg install git #安装git

cd ~

mkdir pro5

cd pro5

git init #将 ~/pro5作为git目录,会产生一个 .git 子目录

git config user.name “greydesign”

git config user.email “qdmcad@outlook.com

ssh-keygen -t rsa -C “qdmcad@outlook.com

回车确认key文件“~/.ssh/id_rsa”

回车确认 no passphrase

回车
提示生成了两个文件:identification文件“id_rsa”、public key文件“id_rsa.pub”。
The key fingerprint is :SHA256:Au9+fkYIdVbtyGtIMI0p6rgcdqPEa359iPfJPORwic qdmcad@outlook.com 这长串是啥,我是不是不应该把它放在我的博客上啊?
termux-setup-storage #建立与手机存储卡的关联 参考 https://termux.com/storage.html

cp ~/.ssh/id_rsa.pub ~/storage/downloads
复制公钥的手机downloads目录,注意,实际是手机的download目录,不知道为啥差一个s。还有,手机不认识下划线,改名字才能看到。把公钥复制到github的用户设置“SSH and GPG keys”下,我添加了一项pro5,以与我的手机型号一致,利于记忆。
ssh -T git@github.com #测试ssh,提示如下:

The authenticity of host ‘github.com(192.30.255.113)’ can’t be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
Are you sure you want to conginue connecting(yes/no)?yes #输入yes
Warning:Permanently added ‘github.com,192.30,255.113’(RSA) to he list of kown hosts.
Hi greydesign!You’ve successfully authenticated,but GitHub does not provide shell access.

问题:

1、这算测试通过了吗?

2、为啥不提供shell?是因为那个参数“-T”吗?

3、192.30.255.113是谁的IP?我查了,www.github.com的IP是192.30.255.112。

4、.ssh目录下的kown_hosts是干啥用的?如何妥善保存公钥、私钥?

5、实现了通过密钥访问,如何禁止通过密码ssh访问?

6、GPG是什么鬼,与密钥哪个更有优势?
注意:我将两个域名www.zhangqihui.tk和www.hisense.tk的DNS IP解析互换了一下,用www.hisense.tk指向美国服务器,Termux竟然能通过原来的www.zhangqihui.tk访问,两者指向同一个IP,这算一个bug了吧?

 

参考:
基于Termux打造Android手机渗透神器
Termux 設定 SSH Server
电脑通过ssh连接android手机上的termux #密钥为何在电脑端生成?写反了吧?
Run an SSH server on your Android with Termux #介绍了-i参数的用法
Access Termux via USB
在 Android 上构建桌面版的开发和工作环境 #能实现桌面?
好用到哭 | Android Linux 环境:Termux #文章实现的几个功能需要尝试一下
Android在终端下编译一个C程序