内部服务器无公网IP情况下 SSH 通过 外部服务器直接登陆跳转到内部服务器

如果内部服务器没有公网IP,但你想通过外部服务器访问它,你可以使用SSH隧道(SSH tunneling)来实现。

服务器设置状态:

服务器外部IP角色
外部服务器189.63.50.77公网IP服务器,跳板机
内部服务器192.168.110.110需要登陆的最终的用户主机

内部服务器和外部服务器都设置一个相同用户,intuser, 设置相同的uid,gid, 

使用ssh-keygen设置内部服务器和外部服务器之间的免密登陆,同时,建议使用chrony之类的设置服务器之间的时间,这里就不多说了。

首先,你需要在外部服务器上创建一个SSH隧道,让它监听一个特定的端口,并将流量转发到内部服务器。假设外部服务器的IP地址是external_server_ip,内部服务器的IP地址是internal_server_ip。

在外部服务器上执行以下命令:

ssh -L 2222:192.168.110.110:22 intuser@189.63.50.77

这将在外部服务器的本地端口2222上创建一个SSH隧道,并将所有流量转发到内部服务器的22端口。

然后,你可以使用SSH客户端连接到外部服务器,并指定端口2222:

ssh -p 2222 intuser@189.63.50.77

这将通过外部服务器的SSH隧道连接到内部服务器。

请确保在外部服务器上的SSH配置文件中允许端口转发功能(PortForwarding)的设置。你可能需要编辑/etc/ssh/sshd_config文件,并确保以下行没有被注释:

AllowTcpForwarding yes

注意:在这个示例中,你需要将命令中的external_server_ip替换为实际的外部服务器IP地址,internal_server_ip替换为内部服务器的IP地址,user替换为你在外部服务器和内部服务器上的用户名。如果需要,你还可以更改端口号。

在建立SSH隧道时,确保外部服务器和内部服务器之间的通信是安全的,并使用密钥认证来保护连接。

当然,也可以直接都在/etc/ssh/sshd_config文件编辑

AllowTcpForwarding yes

Match User intuser
    ForceCommand ssh -t intuser@192.168.110.110 "bash --login"

 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小果运维

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值