建立ssh反向隧道

参考链接:

https://blog.csdn.net/sinat_41721615/article/details/105575955

https://zhuanlan.zhihu.com/p/112227542

 

建立ssh反向隧道方法:

       准备:一台有公网IP的服务器,处于内网的设备,客户端设备

       说明:由于客户端设备不能直接通过互联网访问内网设备,而内网设备可以通过ssh与服务器建立连接,因此需要在内网设备和服务器之间建立一条反向ssh隧道,客户端可以通过服务器来ssh访问内网设备

 

 

建立ssh反向隧道过程:

  1. 在内网设备输入ssh命令,与服务器建立ssh通信,同时将ssh数据在服务器的5007端口做转发

 

 

 

 

其中-N表示不执行命令,只转发;-f表示后台运行;-R表示反向隧道;5007:localhost:22表示监听服务器的5007端口,所有包转发到本地的22端口;root为ssh服务器用户;119.28.54.126为公网服务器IP

 

 

 

  1. 登录服务器ssh转发端口即可ssh到内网设备上

 

 

 

 

 

由于ssh会超时断线,因此需要配置断线重连,并且需要设备免密登录服务器

断线免密登录自动重连:

  1. 在内网设备产生公钥和私钥

 

 

 

 

 

 

然后按三次回车执行默认选项生成公钥和私钥。会生成密钥文件和私钥文件 id_rsa,id_rsa.pub 或 id_dsa,id_dsa.pub

 

 

 

  1. 复制密钥

在设备执行

ssh-copy-id  root@serverip

将密钥复制到服务器.ssh/known_hosts文件中

 

或在服务器

创建存放密钥文件: [root@localhost .ssh]# touch authorized_keys

追加密钥到文件:[root@localhost .ssh]# cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

  1. 在内网设备执行autossh

 

 

 

 

 

 

 

其中-M 5555,表示通过5555端口监听连接状态,有问题就重连

 

 

可能出现的错误:Permission denied, please try again.

问题原因:服务端SSH 服务默认配置禁止root用户登录策略。

解决方法:

1、通过 cat  /etc/ssh/sshd_config 查看是否包含类似如下配置: #PermitRootLogin no

 

 

 

2、将#PermitRootLogin no 改为 PermitRootLogin yes

3、使用如下指令重启 SSH 服务: service sshd restart

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章