官方文档:
一、SSH
为方便笔记本访问手机Termux,开启SSH Server:
参考 Using SSH ,由官方帮助了解到:
1、Termux下的sshd缺省端口是8022
2、通过
ssh-keygen
生成密钥3、私钥放在
~/.ssh/authorized_keys
中,来验证ssh登录4、Termux是单用户系统,ssh登录不能通过用户名与密码,只能通过公钥、私钥方式登录
1、Termux端操作:
apt updateapt 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.sshssh 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 登录家里的树莓派服务器
用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.htmlcp ~/.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的使用日常 #aria2
Termux 設定 SSH Server
电脑通过ssh连接android手机上的termux #密钥为何在电脑端生成?写反了吧?
Run an SSH server on your Android with Termux #介绍了-i
参数的用法
Access Termux via USB #手机没有固定IP时使用
在 Android 上构建桌面版的开发和工作环境 #能实现桌面?
好用到哭 | Android Linux 环境:Termux #文章实现的几个功能需要尝试一下
Android在终端下编译一个C程序