投稿    登录
  《Python3网络爬虫开发实战》赠书活动正在进行中!详情请戳赠书活动!欢迎参与!非常感谢!

SSH反向隧道搭建过程

Linux 崔庆才 1986浏览 0评论

现在我们有一台内网主机 A,在局域网内是可以访问的,但是如果我们现在不处在局域网内,可以选择 VPN 连接,但这样其实并不太方便,所以本节我们来说明一下利用 SSH 反向隧道来实现访问内网主机的方法。

准备

首先我们需要有一台公网主机作为跳板,这台主机是可以公网访问的,我们将其命名为 B,它的 IP 假设为 10.10.10.10。

所以两台机器网络配置如下:

A 内网机器

  • IP:192.168.1.2
  • SSH端口: 22
  • 用户名:usera
  • 密码:passworda
  • 内网配置端口:22(即配置 SSH 端口的反向隧道)

B 公网机器

  • IP:10.10.10.10
  • SSH端口: 22
  • 用户名:userb
  • 密码:passwordb
  • 公网端口:22001(即用 B 的 22001 端口连到 A 的 SSH 22 端口)

配置SSH秘钥

首先我们需要在 A 主机上生成 SSH 秘钥,和 B 用 SSH 建立认证。

首先在主机 A 上执行如下命令生成 SSH 秘钥:

命令里面的邮箱需要自行更换。

然后利用如下命令将 A 的 SSH 秘钥添加到 B 的 authorized_keys 里面:

执行后会提示输入主机 B 的密码,执行完毕之后,我们登录到 B,就发现 authorized_keys 里面就多了 A 的 SSH 公钥了,成功建立 SSH 认证。

B 主机配置

B 主机需要更改 /etc/ssh/sshd_config 文件,修改如下一行:

这样可以把监听的端口绑定到任意IP 0.0.0.0上,否则只有本机 127.0.0.1 可以访问。

然后重启 sshd 服务:

A 主机配置

主机 A 再安装一个 AutoSSH,以 Ubuntu 为例,命令如下:

然后执行如下命令即可完成反向 SSH 配置:

这里 -M 后面任意填写一个可用端口即可,-N 代表只建立连接,不打开shell ,-f 代表建立成功后在后台运行,-R 代表指定端口映射。

这里是将 A 主机的 22 端口映射到 B 主机的 22001 端口,这样就完成了配置。

主要我们再访问 B 主机的 22001 端口,就会自动转发到 A 主机的 22 端口了,即可以公网访问了。

连接测试

接下来 SSH 测试连接 A 主机即可:

输入密码,完成连接。

转载请注明:静觅 » SSH反向隧道搭建过程

喜欢 (25)or分享 (0)

想学更多爬虫知识?《Python3网络爬虫开发实战》这本书也许更适合你~

了解详情or立即购买

我的个人微信公众号

扫码或搜索:进击的Coder

进击的Coder

微信公众号 扫一扫关注

想结交更多的朋友吗?

来进击的Coder瞧瞧吧

进击的Coder

QQ群号 99350970 立即加入

进击的Coder灌水太多?

这里是纯粹的技术领地

激进的Coder

QQ群号 627725766 立即加入

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请狠狠点击下面的

发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址