如何通过代理服务器进行 ssh,有时

如何通过代理服务器进行 ssh,有时

在我的工作笔记本电脑上,如果我需要通过 SSH 连接到非工作机器,我需要通过代理服务器,但仅当我在工作网络上(在办公室或 VPN 上)时才需要。我通过在 SSH 配置文件中设置 ProxyCommand 行来执行此操作。但是,当我不在办公室或 WAN 上时,我不想使用代理。有没有一种简单的方法可以自动决定使用或不使用代理?

答案1

在您.ssh/config使用Match关键字创建条件部分时。

Match关键字采用不同的参数,其中之一是exec允许您运行外部命令并使用该命令的返回值来决定本节是否适用。

您可以用它来运行一个脚本,检查任何可用于区分不同网络的网络设置。当需要 ProxyCommand 时,脚本需要返回 0;当不需要 ProxyCommand 时,脚本需要返回任何非零值。

以下是配置的示例:

Match host external-host.example.com exec /home/joe/bin/need-proxy
  ProxyCommand /home/joe/bin/proxy-script %h %p

相关内容