ssh -F 配置文件和 ProxyCommand

ssh -F configfile and ProxyCommand

我想使用 ssh_config 文件而不是传统的 ~/.ssh/config。我有一个通过堡垒主机访问主机的简单配置(例如在端口 23 上)。

ssh_config :

host bastion
    hostname bastion.mydomain.com
    port 23

host *.server
    proxycommand ssh -W %h:%p bastion

ssh -F ssh_config test.server 不行,扔我 "ssh: Could not resolve hostname bastion: Name or service not known"。

但是,如果将此配置放在 ~/.ssh/config 中,则 ssh test.server 可以工作。

据我了解,proxycommand 无法使用命令行中给出的配置文件。 如果我想让我的命令行配置文件工作,我需要把

    proxycommand ssh -W %h:%p bastion.mydomain.com -p 23

但这似乎违反了一个简单的DRY原则(端口和域重复)。我愿意构建的配置文件要长得多,也复杂得多。

是否有实现我想要的效果的好方法,即一个简单的、非重复的、可在 proxycommand 起作用的命令行中使用的配置文件?

回答一半: 与其递归地使用配置文件,不如尝试完全不依赖代理命令的配置。

host *.server proxycommand ssh -W %h:%p bastion.mydomain.com -p 23

这使其具有可移植性,但并没有解决您必须在每一行都执行此操作的其他问题,并且使更改堡垒主机地址成为一个困难的过程。

您需要通过代理命令 ssh -W %h:%p bastion -F [您的自定义 ssh 配置]