Termux和Ubuntu建立ssh连接
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 节一样。