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 后即可完成连接!

  • 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 后即可完成连接!

猜你喜欢

转载自www.cnblogs.com/hookjc/p/13178577.html