SSH反向代理实现从Android 平板同 PC中虚拟机Linux系统ssh登录

假设有三台机器

 

A :  PC下虚拟机 装的 Ubtunu  Linux ,ip为192.168.175.129 用户名为kisdy

B : 位于公网的CenterOS Linux  服务器 ,ip为192.168.52.15 用户名为root 

C :Android 平板,连接一个WIFI,装了TerMux Apk 模拟 Linux终端

 

要求

   A安装了 SSH SERVER 和SSH Client  (必须都装,花了半天时间发现实现不了功能,最后装上ssh server问题才解决的)

   B安装了 SSH SERVER 和SSH Client   

  C安装了 SSH CLient

 

接下来干活:

A 反向代理连接到 B

 ssh -p 22 -qngfNTR 8088:localhost:22 [email protected]

之后通过ps aux | grep ssh 查看 ssh连接已经建立了

SSH反向代理实现从Android 平板同 PC中虚拟机Linux系统ssh登录_第1张图片

B机器正向代理并实现端口转发

ssh -fCNL *:1234:localhost:8088 localhost

SSH反向代理实现从Android 平板同 PC中虚拟机Linux系统ssh登录_第2张图片

通过截图可以看到连接已经建立

 

,平板通过ssh连接到位于虚拟机内的主机A

ssh -p 1234 [email protected] 

SSH反向代理实现从Android 平板同 PC中虚拟机Linux系统ssh登录_第3张图片

通过最终截图,可以看出来,ssh连接最终进入了A的shell环境了。

 

中途遇到过一个问题执行第三部操作时一直提示报错 WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED

直接删除.ssh/known_hosts文件,即刻。

这样的ssh不是持久的,最终需要用autossh实现持久连接,这个欢迎小伙伴自己搜索

研究这块的目的,是因为公司想做一个远程调试的功能,即通过PC adb connect 到 用户手里的Android设备,实现可视化调试,中间一个关键地方就是通过公网服务器中转,SSH反向代理,实现PC ssh连接用户手里的Android设备。

当然ssh反向代理只是第一步,后面还有很多技术要点要研究。

你可能感兴趣的:(android,android)