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

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

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

答案1

[回答赞美卡斯帕德在……之上服务器故障

在您的 .ssh/config 中使用Match关键字创建一个条件部分。

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

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

以下是配置的示例:

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

相关内容