0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

什么是反向SSH?如何创建反向SSH隧道?

马哥Linux运维 来源:huaweicloud 2024-08-05 15:16 次阅读

【摘要】 反向 SSH 是一种可用于从外部世界访问系统(位于防火墙后面)的技术

反向 SSH 是一种可用于从外部世界访问系统(位于防火墙后面)的技术。

如您所知,SSH 是一种支持网络节点之间加密通信的网络协议。使用此协议,您可以进行安全的远程登录、从/到远程机器的安全复制等。

您通常会执行以下操作以使用ssh 命令安全地连接到远程服务器。

$ ssh [your-account-login]@[server-ip]

什么是反向 SSH?

SSH 是一个非常好的安全访问远程机器或服务器的工具。但是,当您尝试连接到防火墙后面的远程服务器并且此防火墙拒绝任何传入连接或没有先前传出请求的数据传输请求时,就会出现问题。这意味着只允许那些由远程服务器机器发起的连接。对于那些想要远程访问此服务器机器的人来说,这是一个真正的问题。

反向 SSH 提供了一种技术,您可以通过该技术模拟到此远程服务器计算机的正常 SSH。

主要问题是防火墙拒绝您的机器尝试与远程服务器机器建立的 ssh 连接。但是您知道,同一防火墙不会对源自服务器计算机的连接有任何问题。所以,为什么不请坐在防火墙后面的人做一些事情,以实现远程访问服务器的目标。为此,我们必须使用 ssh -R 选项。

这是手册页中 ssh -R 选项的描述:

-R [bind_address:]porthostport

指定将远程(服务器)主机上的给定端口转发到本地端的给定主机和端口。这是通过分配一个套接字来侦听远程端的端口来实现的,并且每当与此端口建立连接时,都会通过安全通道转发连接,并从本地计算机建立与主机端口 hostport 的连接。

因此,您可以使用带有 -R 选项的 ssh 命令(在我们的例子中来自服务器)连接到您的机器,在那里分配一个端口,并确保该端口上的任何连接请求都转发到远程服务器的 ssh 端口。

服务器机器执行 ssh 并通过端口转发确保您可以 ssh 返回服务器机器,而不是您的机器执行 ssh。

如何创建反向 SSH 隧道?

这是您坐在远程服务器端的朋友应该在服务器上运行的命令:

ssh -fN -R 7000:localhost:22 username@yourMachine-ipaddress

因此,从远程服务器到您的机器的这个 ssh 连接请求将确保您机器上端口 7000 的任何 ssh 连接请求都转发到远程服务器的端口 22。

现在在端口 7000 上从您的机器向您自己的机器发出 ssh 连接请求:

ssh username@localhost -p 7000

在这里,尽管您似乎在 localhost 上执行 ssh,但您的请求将被转发到远程主机。因此,您应该在远程服务器上使用您的帐户“用户名”,并在提示输入密码时输入相应的密码。

这应该清楚与反向 ssh 技术相关的大部分方面。但是,有一个问题。问题是你必须先请你的一个朋友——他坐在防火墙后面——来创建一个 ssh 连接。这不是每次都可行的。

为了克服这个问题,您可以做的是设置一台不受防火墙限制的机器(就像您的机器一样),使其始终处于开启状态。让我们将此机器称为 machine_z。

machine_z 的好处是,您可以一次在其上设置反向 ssh,然后将其保留为这样。在任何时候,当您需要登录远程机器时,您可以在指定端口上 ssh 进入 machine_z(如前所示),您的连接请求将被转发到远程服务器机器,瞧,您将在远程运行命令服务器。

在相关说明中,您还可以设置无密码 SSH以在不输入密码的情况下连接到另一台服务器。

您需要在 machine_z 上配置的一些设置包括:

确保将参数 TCPKeepAlive、ClientAliveInterval、ClientAliveCountMax 和 GatewayPorts 设置为适当的值。这些参数位于 /etc/sshd_config 或/etc/ssh/sshd_config文件中

如果您对上述参数进行了一些更改,您应该重新启动 sshd 守护程序以反映更改。

此外,请确保使用nohup 命令运行第一个 ssh 命令(从远程服务器执行到 machine_z) ,以便此 ssh 会话不受用户注销时可能发生的挂起的影响。

链接:https://bbs.huaweicloud.com/blogs/371112

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    87

    文章

    11122

    浏览量

    207880
  • 服务器
    +关注

    关注

    12

    文章

    8688

    浏览量

    84520
  • 命令
    +关注

    关注

    5

    文章

    658

    浏览量

    21926
  • SSH
    SSH
    +关注

    关注

    0

    文章

    178

    浏览量

    16225

原文标题:如何在 Linux 上设置反向 SSH

文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    SSH定义及应用

    学习完本课程,您应该能够:了解SSH定义及应用。掌握SSH和SFTP工作原理,掌握SSH和SFTP应用,掌握SSH和SFTP的配置及维护。
    发表于 04-12 17:38 12次下载

    SSH指南

    OpenSSH OpenSSH 是 SSH (Secure SHell) 协议的免费开源实现。它用安全、加密的网络连接工具代替了 telnet、ftp、 rlogin、rsh 和 rcp 工具
    发表于 11-07 11:44 1次下载

    ssh如何上传文件到服务器

    下面恒讯科技小编将跟大家探讨一下ssh如何上传文件到服务器的呢? 一、什么是SSHSSH是一种安全的网络协议,它允许您通过在不安全的网络上创建安全通道来安全地使用网络服务。但它通过
    的头像 发表于 02-16 17:21 1.5w次阅读

    三条命令助你快速实现SSH内网穿透

    ssh 反向隧道相信大多数同学都比较了解,就算不了解也一定在日常工作中听说过,其实抛开那些专业的术语,通常我们借助 ssh反向
    的头像 发表于 11-14 14:32 4462次阅读

    SSH第3部分:配置SSH反向隧道以减少暴露的端口

    的 Web 服务。您还可以使用 SSH 隧道创建跳转框和网关,允许远程连接到您的网络,而无需暴露额外的网络端点或端口。
    的头像 发表于 01-03 09:45 2474次阅读
    <b class='flag-5'>SSH</b>第3部分:配置<b class='flag-5'>SSH</b><b class='flag-5'>反向</b><b class='flag-5'>隧道</b>以减少暴露的端口

    推荐6款SSH远程连接工具

    xshell是一个非常强大的安全终端模拟软件,它支持SSH1, SSH2, 以及Windows平台的TELNET 协议。
    的头像 发表于 01-31 09:18 10.9w次阅读

    SSH是什么?

    SSH(secure shell)是一种网络协议,用于不同主机之间的加密通信。在1995年被设计出来,现已成为Linux系统的标准配置。
    的头像 发表于 02-15 14:05 3417次阅读

    如何修改Linux系统的SSH端口

    SSH 是一种网络协议,用于与 Linux 系统进行远程安全通信。默认情况下,SSH 服务使用端口 22。
    的头像 发表于 03-20 16:46 2263次阅读

    什么是SSH密钥?如何使用SSH密钥?

    SSH密钥是用户名和密码的替代方法,是一种用户身份验证方法。它主要用于向服务提供加密文件而不是基于文本的密码。
    的头像 发表于 05-04 09:04 5321次阅读
    什么是<b class='flag-5'>SSH</b>密钥?如何使用<b class='flag-5'>SSH</b>密钥?

    保持SSH会话不掉线

    如果我们看到这个错误消息,意味着我们需要手动创建这个配置文件。如果 .ssh 目录不存在,首先创建 .ssh 目录,使用命令 mkdir $HOME/.
    的头像 发表于 05-05 10:41 2376次阅读

    SSH命令详解

    ssh是一种安全的远程登录及传输协议。ssh可用于远程登录、远程文件传输等。ssh是安全的shell。
    的头像 发表于 06-02 10:00 1.6w次阅读
    <b class='flag-5'>SSH</b>命令详解

    轻量服务器怎么搭建ssh

    。在控制台中,找到并点击左侧导航栏中的密钥选项。然后,在密钥列表页面上,点击创建密钥按钮。 第二步:创建SSH密钥 在创建SSH密钥窗口中,
    的头像 发表于 10-10 09:59 531次阅读

    SSH端口号是什么?SSH是如何工作的?

    SSH(Secure Shell,安全外壳)是一种网络安全协议,通过加密和认证机制实现安全的访问和文件传输等业务。传统远程登录或文件传输方式,例如Telnet、FTP,使用明文传输数据,存在很多
    的头像 发表于 11-10 10:06 2488次阅读
    <b class='flag-5'>SSH</b>端口号是什么?<b class='flag-5'>SSH</b>是如何工作的?

    怎么用SSH密钥登陆vps?

    使用SSH密钥登录VPS(Virtual Private Server)是一种更安全和方便的方式,相比使用密码,SSH密钥更难被破解。以下是在Linux系统上使用SSH密钥登录VPS的基本步骤: 一
    的头像 发表于 02-20 16:29 833次阅读

    NAS教程:铁威马如何登录 SSH终端?

    适用型号: 所有TNAS 型号 如您有特殊操作需要通过 SSH 终端登录 TNAS,请参照以下指引: (注意: 关于以下操作步骤中的"cd /"的指令,其作用是使当前 SSH/Telnet 连接
    的头像 发表于 06-26 14:30 256次阅读
    NAS教程:铁威马如何登录 <b class='flag-5'>SSH</b>终端?