debian ssh 連接android 通過termux
來自: http://www.findspace.name/easycoding/1652
Introducation
termux是個非常強大的終端模擬器。
酷安網下載地址 </div>
高級終端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 ,輸出類似:
</div>
[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即所屬組。不是的話按上述方法修改。
此時我們的授權已經做好了
</div>
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>