SSH 隧道命令

问题描述 投票:0回答:1

我正在尝试通过 ssh 协议建立隧道,我正在搜索命令 SSH 和带有私钥的远程服务器

我的主要目标是通过堡垒在我的本地服务器和远程服务器之间建立 SSH 隧道,其中堡垒和远程服务器都有不同的私钥。我需要在我当地的詹金斯做这个,但首先我试图在我的 git cmd 中解决这个问题。

所以,我发出了命令:“ssh -i user@ip”,但我看到了命令“ssh -i -L port:ip-remote:port-remote user@ip”。

我的问题是:

这两个命令有什么不同。 我可以执行什么命令来创建隧道。 如何扩展 line 命令以包括堡垒和他的钥匙。 (我看到可以使用 ProxyCommand 但我的 SO 是 Windows 并且我有不支持该命令的 Git CMD)

jenkins ssh-keys openssh ssh-tunnel
1个回答
0
投票

第一个命令“ssh -i user@ip”是一个基本的 SSH 命令,它允许您使用特定的私钥文件连接到远程服务器。此命令仅创建到远程服务器的 SSH 连接,不会创建隧道。

第二个命令“ssh -i -L port:ip-remote:port-remote user@ip”在本地计算机和远程服务器之间创建 SSH 隧道。 “-L”选项指定您要创建本地端口转发,其中到达本地计算机上特定端口的任何流量都将转发到远程服务器上的特定 IP 和端口。如果您想访问不可公开访问的远程服务器上的服务,此命令会很有用。

要通过堡垒服务器创建 SSH 隧道,您可以在 SSH 配置文件中使用 ProxyCommand 选项。但是,正如您提到的,Windows 上的 Git CMD 不支持 ProxyCommand 选项。

解决此限制的一种方法是在 Windows 上使用支持 ProxyCommand 的 SSH 客户端,例如 PuTTY 或 Cygwin。您可以使用 PuTTY 通过堡垒服务器创建 SSH 隧道,然后使用该隧道连接到远程服务器。或者,您可以使用 Cygwin 在 Windows 机器上安装功能齐全的类 Linux 环境,包括支持 ProxyCommand 的 SSH 客户端。

以下是如何使用 PuTTY 创建 SSH 隧道的示例:

打开 PuTTY 并转到“连接”>“SSH”>“隧道”设置。 在“源端口”字段中,输入要用于隧道的本地端口号。 在“目标”字段中,输入要连接的远程服务器的 IP 地址和端口号。 选择“本地”单选按钮并单击“添加”按钮。 回到“会话”设置,在“主机名(或IP地址)”字段中输入堡垒服务器的IP地址和用户名。 在“连接”>“SSH”>“身份验证”下,浏览并选择堡垒服务器的私钥文件。 单击“打开”按钮启动 SSH 会话。 连接到堡垒服务器后,到达您在步骤 2 中指定的本地端口的任何流量都将通过 SSH 隧道转发到远程服务器。

希望对您有所帮助!

© www.soinside.com 2019 - 2024. All rights reserved.