小编Nar*_*aki的帖子

ssh ProxyCommand 实际上是如何工作的?

我对使用 ssh 的 ProxyCommand 功能很满意,并且可以使用它来跳过多个堡垒主机以有效地到达最终​​主机。但我似乎无法理解它在后端实际上是如何工作的。

例如。我有以下配置文件。

Host final
Hostname final.com
Port 22
AgentForwarding yes
User guestuser
ProxyCommand "ssh user@bastion.com -W %h:%p"
Run Code Online (Sandbox Code Playgroud)

我知道为了连接到主机final,ProxyCommand 将在连接到final.com. 但我似乎仍然无法理解连接的顺序。

选项有-W %h:%p什么作用?我知道这是 netcat 功能,类似于nc %h %p.

所以就我的理解而言,这里是操作的顺序。如果我错了,请告诉我。我将在我的示例中使用上面指定的配置文件。

  1. 用户输入 ssh final
  2. 已创建到 bastion.com 的 ssh 连接。
  3. 从 bastion.com 到 final.com 的端口 22 创建了一个 netcat 隧道。netcat的stdin连接到bastion.com连接中得到的shell。
  4. 所以现在我们有一个从我们的系统到 final.com 的连接。此连接的前半部分是从我们的系统到 bastion.com 的 ssh 连接。此连接的后半部分是从 bastion.com 到 final.com 的 netcat 隧道。
  5. 现在ssh final命令将上述连接作为代理并通过此现有连接传输其数据。

另外我还想知道这种技术是否也称为ssh stacking

添加换行符

ssh proxy ssh-tunnel

11
推荐指数
1
解决办法
5770
查看次数

在 NAT 后面的多台 Windows 机器上访问远程桌面

我们公司有多个 Windows 服务器在 NAT 防火墙后面运行。我们希望向我们的用户提供对这些机器的远程桌面访问。

解决方案之一是通过端口转发。我们可以将 RDP 设置为在特定端口上运行,并从防火墙转发该端口。但是,这会在防火墙上打开很多端口,我们不想使用这种策略。

我在想是否有类似于 ssh 网关的解决方案。(是否有基于名称的虚拟主机 SSH 反向代理?

有没有其他解决办法。

谢谢

security windows rdp nat remote-desktop

2
推荐指数
1
解决办法
2171
查看次数

CentOS 6.5 代理绕过/no_proxy 不起作用

我在我的桌面上运行 CentOS 6.5。我已经设置了Network Proxy使用下提供的网络代理应用程序Preferences。我还设置了以下例外: localhost,127.0.0.0/8,172.16.0.0/12,192.168.0.0./16

但是每当我使用 wget(我正在使用 wget 测试代理设置)时,wget 都会尝试连接到私有地址的代理,但wget localhost工作正常并且不使用代理。

我还删除了所有代理设置并在 shell 中设置了代理:

export http_proxy="<proxy_url>:<port>"
export https_proxy="<proxy_url>:<port>"
export no_proxy="localhost,127.0.0.0/8,172.16.0.0/12,192.168.0.0./16"
Run Code Online (Sandbox Code Playgroud)

它工作时,我用命令wget <external_url>或者wget localhost但是当我使用该命令将失败wget <private address from the $no_proxy variable>

我还尝试在 Ubuntu 14.04 中设置变量并面临同样的问题。

编辑:我发现 shell 忽略了 CIDR 表示法。如果我需要在没有代理的情况下浏览 127.0.0.1 那么我需要在no_proxy变量中输入 127.0.0.1而不是 127.0.0.0/8

linux bash proxy http-proxy linux-networking

2
推荐指数
1
解决办法
3万
查看次数