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 配置]
我想使用 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 配置]