AutoSSH建立SSH隧道,实现内网端口转发

  • A+
所属分类:Linux
AutoSSH建立SSH隧道,实现内网端口转发

简介

  • 在早期互联网使用当中,都是使用明文进行通信的,一旦消息被截获,内容就暴露无疑。1995 年,芬兰学者 Tatu Ylonen 设计了 SSH 协议,将登录信息全部加密,成为互联网安全的一个基本解决方案,迅速在全世界获得推广,目前已经成为 Linux 系统的标准配置。
  • SSH 之所以能够保证安全,原因在于它采用了公钥加密。需要指出的是,SSH 只是一种协议,存在多种实现,既有商业实现,也有开源实现。我们这里主要针对的是 OpenSSH 工具,它是自由软件且应用非常广泛。

准备

  • 公网主机VPS一台
  • 内网主机VPS一台

公网主机配置

修改/etc/ssh/sshd_config配置文件,将#GetewayPorts no 改成如下

GetewayPorts yes

在Linux中,ssh的GatewayPorts参数用于控制SSH服务器将哪些IP地址绑定到端口上。通常情况下,SSH服务器只绑定到127.0.0.1本地回环地址上,这意味着只有本地计算机可以通过该端口进行连接。然而,如果设置了GatewayPorts参数,SSH服务器将会绑定到所有可用的IP地址,这将允许远程计算机通过SSH连接到该端口。

具体来说,如果将GatewayPorts设置为yes,则SSH服务器将在所有可用IP地址上绑定到端口上,而如果将其设置为no,则仅在本地回环地址上绑定到端口上。

内网主机配置

1、在内网主机生成密钥。

ssh-keygen

2、使用如下命令将生成的密钥复制到公网主机。

ssh-copy-id -i /root/.ssh/id_rsa.pub -p 22 root@公网主机ip

3、在内网主机安装autossh,如果不能安装需要使用apt update先更新系统软件列表。

 sudo apt-get install autossh

开始测试

autossh -p 22 -M 监听端口 -NR 映射端口:localhost:22 root@公网主机ip

其中的参数:

  • -p 22: 内网vps ssh 端口,默认值22.
  • -M 23451: 中继服务器(vps)的代理服务监听端口,需保证不被vps其它进程占用.
  • -NR 23452:localhost:22: 端口映射,vps的23452端口映射到内网PC的22端口(sshd), 23452即为映射端口.

使用nohup将autossh挂系统后台运行。

nohup autossh -p 22 -M $listen_port -NR $mapped_port:localhost:22 root@$host &

至此配置已完成。这里我做了个自动化安装autossh脚本,感兴趣的可以关注微信公众号回复“autossh”即可获取脚本。或者进群联系群管索要。

脚本如下图:

AutoSSH建立SSH隧道,实现内网端口转发

其他

使用netstat -ant 可查看当前监听tcp端口

openwrt 轻量级dropbear https://matt.ucc.asn.au/dropbear/

参考来源:

https://www.jianshu.com/p/815a6f2f8c55

https://www.lixl.cn/2020/010618877.html

https://www.escapelife.site/posts/e2e78d82.html

https://www.ruanyifeng.com/blog/2011/12/ssh_remote_login.html

  • 微信公众号
  • 扫一扫关注微信公众号
  • weinxin
  • 运维交流群
  • 扫一扫二维码加入群聊
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: