Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

ssh -F configfile and ProxyCommand

Tags:

ssh

I would like to use a ssh_config file instead of the traditional ~/.ssh/config. I have a simple configuration for accessing hosts through a bastion host (on port 23 for example).

ssh_config :

host bastion
    hostname bastion.mydomain.com
    port 23

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

ssh -F ssh_config test.server is not working and throw me "ssh: Could not resolve hostname bastion: Name or service not known".

But, if put this config in ~/.ssh/config, then ssh test.server works.

As I understand it, the proxycommand is unable to use the config file given in the command line. If I want my command line config file to work, I need to put

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

but this seems to violate a simple DRY principle (the port and the domain are repeated). The config file I'm willing to build is much much longer and complex.

Is there a good way to achieve what I want, i.e. a simple, non-repeating, config file usable in command line for which proxycommand works ?

like image 598
ElBidoule Avatar asked Feb 28 '26 22:02

ElBidoule


2 Answers

Half of an answer: Rather than using the config file recursively, try not relying on the config at all for the proxy command.

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

This allows it to be portable, but doesn't solve your other issue of having to do this on every line, and makes changing the bastion host address a difficult process.

like image 150
daemonl Avatar answered Mar 03 '26 13:03

daemonl


You need to pass your custom config to the ProxyCommand, too.

proxycommand ssh -W %h:%p bastion -F [your custom ssh config]
like image 27
iatanasov Avatar answered Mar 03 '26 13:03

iatanasov



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!