Linux 设置 ssh 内网穿透

**背景:**有三台机器A、B、C,机器 A 位于某局域网内,能够连接到互联网。机器 B 有公网 IP,能被 A 访问到。机器 C 位于另外一个局域网内,能够连接到互联网,能够访问 B。

**目标:**以 B 为中介,让 C 能够直接通过 ssh 连接到 A。

实现方法:使用 SSH 构建内网穿透隧道

  1. 修改机器 B 的 /etc/ssh/sshd_config,设置 GatewayPorts yes

  2. 在机器A的 ~/.ssh/authorized_keys 中添加机器 B 和机器 C 的公钥。如果希望机器 A 能够无密码访问机器 B,可以将机器 A 的公钥添加到机器 B 的 ~/.ssh/authorized_keys 中,否则不要添加,不添加则在A上使用 ssh -NR 建立隧道时需要输入机器 B 的密码。

  3. 在机器 A 上使用如下命令建立隧道:

bash 复制代码
ssh -NR [X1]:[X2]:[X3] [X4]@[X5]


X1:机器B用于构建隧道的端口

X2:机器A的localhost,可以写为 0.0.0.0

X3:机器A的端口,表示希望机器C经过隧道访问到的A的端口,对于ssh连接,使用22端口

X4:机器B用于构建隧道的用户的用户名

X5:机器B的ip
  1. 使用机器 C 连接机器 A:
bash 复制代码
ssh -p [X1] [X6]:[X5]


X6:希望登录到机器 C 的用户名,注意该用户不是机器 B 上的用户,而是机器 C 上的用户

注意事项:

需要检查防火墙是否开放对应端口

相关推荐
H_oRIZoN_27 分钟前
Linux入门DAY45 IMX6ULL 裸机开发笔记:汇编点灯、C 语言点灯、GIC 中断梳理
linux·单片机·嵌入式硬件
M哥支付37 分钟前
商户池是什么?
服务器·网络·其他·微信·金融
Wang's Blog1 小时前
Java 项目实战: 外卖平台-修改分类与新增窗口复用
服务器·项目开发
临期冰淇淋1 小时前
Unisoc 展锐平台Camera摄像头分辨率适配
linux·c语言·驱动开发
Web极客码2 小时前
抵御隐蔽的慢速连接攻击:我用 Claude 编写 nftables 规则,精准压制 HTTP Slo
服务器·copilot
流浪0012 小时前
Linux系统篇36——线程(一) 线程的概念、本质和Linux的实现方式
linux·面试·操作系统·线程
fanxiaohui121382 小时前
2026年长效耐用磁吸充电宝推荐|南孚传应解锁安心出游
服务器·人工智能·手机·电池·南孚传应
从零开始的嵌入式之旅2 小时前
day46
linux·arm开发·笔记·嵌入式硬件
虚无的纽扣2 小时前
【Linux】将进程知识与基础IO融会贯通——简单自定义Shell的实现
linux·ubuntu
Gauss松鼠会3 小时前
GaussDB 系统表与系统视图详解(内网运维版)
运维·服务器·网络·数据库·gaussdb·经验总结