ssh-F configfile和ProxyCommand

ssh-F configfile和ProxyCommand,ssh,Ssh,我想使用ssh_config文件,而不是传统的~/.ssh/config文件。我有一个通过堡垒主机访问主机的简单配置(例如在端口23上) ssh_配置: host bastion hostname bastion.mydomain.com port 23 host *.server proxycommand ssh -W %h:%p bastion ssh-F ssh\u config test.server不工作,并向我抛出“ssh:无法解析主机名堡垒:名称或服务未

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

ssh_配置:

host bastion
    hostname bastion.mydomain.com
    port 23

host *.server
    proxycommand ssh -W %h:%p bastion
ssh-F ssh\u config test.server
不工作,并向我抛出“ssh:无法解析主机名堡垒:名称或服务未知”

但是,如果将此配置放在~/.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


这允许它是可移植的,但并不能解决在每条线路上都必须这样做的其他问题,并且使更改bastion主机地址成为一个困难的过程

您需要传递proxycommand ssh-W%h:%p bastion-F[您的自定义ssh配置]

指定
proxycommand-F ssh\u配置是否有效。但是我需要在config_文件中的任何地方重复这一点。更改文件名是灾难性的。因此,我关于实现这一点的更好方法的问题应该仍然存在。您能否向我们解释一下,为什么您试图避免使用正常的
~/.ssh/config
文件?这显然是最简单的解决办法。否则,在调用ssh的任何地方指定
-F path/to/config
可能是最好的选择。@larsks我想把这个配置文件放在git repo中,并有一个可接受的配置。谢谢你快速但令人沮丧的回答。