debian ssh 连接android 通过termux
来自: http://www.findspace.name/easycoding/1652
Introducation
高级终端Termux组合了强大的终端模拟和拓展Linux包收集支持。
- 享受bash 和 zsh。
- 使用nano 和 vim编辑文件。
- 通过ssh访问服务器。
- 使用gcc和clang编译代码。
- 使用python控制台来作为口袋计算器。
- 使用git 和 subversion检查项目。
- 使用frotz运行基于文本的游戏。
使用openssh从桌面连接安卓
由于termux甚至支持apt命令,所以从他建立。
官方英文ssh连接说明 比较简陋,这里详细描述一下。
安装termux
安装完成后,第一次打开会需要下载一些包库。下载安装包库完成进入后,先跟普通的debian一样,注意是apt,手机上执行:
apt update
再安装openssh
apt install openssh
会自动生成keygen。并给出路径地址。
设置keygen
生成key
在电脑上运行
ssh-keygen -t rsa
交互式地生成一个key,默认保存在 ~/.ssh/ 下,两个文件 id_rsa 和 id_rsa.pub ,pub是公钥,另一个是私钥。ssh登录的原理不再赘述,自行谷歌。
连接adb
通过各种方式(直接usb或者通过网络adb)adb连接到手机上,将公钥adb push到手机上
adb push ~/.ssh/id_rsa.pub /data/data/com.termux/files/home/.ssh/id_rsa.pub
设置授权key
通过 adb shell 进入手机,cd到 data/data/com.termux/files/home/.ssh/ ,将公钥内容添加到ssh的授权文件里
cat ./id_rsa.pub >> authorized_keys
注意权限问题
在手机上执行
whoami
得到用户名,比如得到的是 u0_a97 。
要求 .ssh 文件夹的权限是700(即 rwx------ ),且用户都是termux的用户才可以。
在电脑上执行:
在 home 文件夹下执行 ll -a ,输出类似:
[email protected]
:/data/data/com.termux/files/home # ll -a -rw------- u0_a97 u0_a97 635 2016-03-06 11:20 .bash_history drwx------ u0_a97 u0_a97 2016-03-06 12:20 .ssh
如果 .ssh 文件夹不是如图权限,则
chmod 700 .ssh
所属用户和组修改:
chown u0_a97:u0_a97 .ssh
同样查看 authorized_keys 文件权限是否是600(即 rw------- )和其owner即所属组。不是的话按上述方法修改。
此时我们的授权已经做好了
ssh连接
在手机上的termux里输入 sshd 开启ssh服务器,
在电脑上
ssh [email protected]
-p 8022
ip地址是手机的ip,端口默认是8022,可以通过 sshd -p 9000 来指定ssh服务器的端口。如果普通登录ssh一样,第一次连接会问你是否继续,输入yes继续,看到 $ 符,ok,登录成功。
这里用户是普通用户,root用户如何ssh我还不清楚,但是由于我给小米刷了cm,cm官方wiki里有个说明,然而我没有配置成功
cm官方wiki说明ssh登录修改源
由于是termux自己建的一个模拟用户,有 home 和 usr 两个主要的文件,默认系统的文件都在 usr 下,如源等。默认linux的源是 /etc/apt/sources.list ,则此时就变成了 /data/data/com.termux/files/usr/etc/apt/sources.list
清华有termux的源,可将源内容改成如下:
# The main termux repository: deb [arch=all,arm] http://mirrors.tuna.tsinghua.edu.cn/termux/ stable main
通过 apt update 就可以更新源啦。
手机电脑不处于同一个局域网
手机必然至少连接路由器,在路由器里设置端口转发即可。
tips
其实也有一些独立的ssh应用,但是termux不只是包括ssh,这里只是简单记录自己使用termux的一些经验。
</div>