- A+
简介
- 在早期互联网使用当中,都是使用明文进行通信的,一旦消息被截获,内容就暴露无疑。
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”即可获取脚本。或者进群联系群管索要。
脚本如下图:
其他
使用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
- 微信公众号
- 扫一扫关注微信公众号
- 运维交流群
- 扫一扫二维码加入群聊