1 本機環境
- Android:Termux v0.77 作為客戶端
- Linux:Ubuntu 19.10 作為服務器
- 兩者處於同一局域網下
2 ssh安裝
2.1 Termux
pkg install openssh
注:若提示無法定位軟件包,重裝軟件或許能夠解決(本人就是)!
2.2 Ubuntu
sudo apt install openssh-client openssh-server
3 普通連接
3.1 Termux 作為 client,Ubuntu 作為 server
1. Ubuntu 中執行下述代碼打開服務器端口:
sudo /etc/init.d/ssh start
2. Ubuntu 中執行 ifconfig ,記下服務器 ip 地址(如下圖 inet 位置的 10.99.22.172):
3. Termux 中執行下述代碼后輸入 user_name 的登錄密碼即可完成連接:
ssh user_name@ip_address
其中,user_name 為 Ubuntu 下的用戶名,ip_address 為 Ubuntu 的 ip 地址。
3.2 Ubuntu 作為 client,Termux 作為 server
1. Termux 中執行下述代碼打開服務器端口:
sshd
2. Termux 中執行 ifconfig ,記下服務器 ip 地址(和 3.1 中類似),然后執行 whoami ,記下用戶名:
3. Ubuntu 中執行下述代碼后輸入 user_name 的登錄密碼即可完成連接:
ssh user_name@ip_address -p 8022
其中,user_name 為 Termux 下的用戶名,ip_address 為 Termux 的 ip 地址。
4 免密和免 ip 登錄
有沒有覺得每次登錄都要輸入密碼和 ip 地址很麻煩?幸好 ssh 提供了免密和免 ip 登錄的方法!
4.1 Termux 作為 client,Ubuntu 作為 server
1. Termux 中執行下述代碼在 ~/.ssh/ 中生成公私密鑰:
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
參數說明:
-t 加密算法類型,這里是使用rsa算法
-P 指定私鑰的密碼,不需要可以不指定
-f 指定生成秘鑰對保持的位置
2. Termux 中執行下述代碼將公鑰發給 Ubuntu,之后執行 ssh user_name@ip_address 后不需要輸入密碼:
ssh-copy-id user_name@ip_address
3. Termux 中新建或打開 ~/.ssh/config 文件,添加以下內容:
Host server_name # SSH鏈接的服務器別名(自己任意取即可)
HostName server_ip # Linux 的 ip 地址
Port 22 # 默認即可
User user_name # 服務器端用戶名
PreferredAuthentications publickey # 默認即可
IdentityFile ~/.ssh/id_rsa # 第一步生成的私鑰地址,默認為 ~/.ssh/id_rsa
4. 執行 ssh server_name 后即可完成連接!
4.2 Ubuntu 作為 client,Termux 作為 server
步驟同第 3 節一樣。