远程反向SSH调试

背景

        基于产品网络拓扑,终端是放置在各个不同地区的地方,这些地方终端通过网络跟服务平台端连通。但这个网路可能是过了多级路由,导致网络能通,但是IP不可见,尤其在公网情况下,看到的可能是这个终端所在的小区或者公司的对外IP。所以,我们想要远程ssh到我们的终端上的话,必须到达这个终端所在的局域网才行,这个会耗费大量的人力物力和时间。

        所以需要在终端IP不可见的情况下,通过网络SSH登录上去。

示例

       反向SSH命令,在终端上敲(通过网络消息实现):ssh -R 2222:localhost:22 用户名@服务端IP输入密码登录。其中2222是后续SSH登录的端口号,可以自定义。

        然后在服务端上敲:ssh -p 2222 localhost即可登录终端,可以不用填终端IP。

        需要免密登录加后台运行使用下面命令:

nohup sshpass -p "密码" ssh -N -R 端口:localhost:22 用户名@服务端IP &

       断开SSH,只需要把对应的进程杀掉即可。

       但是因为ssh反向代理在网络不稳定的环境下面就会很麻烦,连接断开后还要自己手动连接,所以为了实现稳定的ssh反向代理穿透,使用autossh,autossh会用一个特定的端口监视ssh反向代理端口,从而实现稳定的连接,在网络不好的时候会自动连接。

       使用命令

./autossh -M 消息端口 –NR 登录端口:localhost:22 用户名@服务端IP

       

dropbear

        dropbear是轻量级的sshd服务器,与OpenSSH相比,他更简洁,更小巧,运行起来占用的内存也更少,因此被很多嵌入式设备所使用。其中dropbear对应sshd服务,dbclient对应ssh客户端工具。

Dropbear交叉编译:

  1. 下载源码https://matt.ucc.asn.au/dropbear/releases/
  2. mkdir build;./configure --prefix=build --host=arm --disable-zlib --disable-bundled-libtom
  3. Makefile里修改交叉编译器
  4. make PROGRAMS="dropbear dbclient dropbearkey dropbearconvert scp"
  5. make PROGRAMS="dropbear dbclient dropbearkey dropbearconvert scp" install

dropbear反向SSH运行:

        1.终端上执行./dropbear -p 10810,输入终端密码,运行SSH服务。

        2.然后执行命令

./dbclient -R 12322:localhost:10810 用户名@IP

        3.服务端上敲ssh -p 12322 root@localhost,输入终端密码,即可登录终端。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值