2015-02-03 2 views
2

Я бы хотел использовать файл ssh_config вместо обычного ~/.ssh/config. У меня есть простая конфигурация для доступа к узлам через хост бастиона (например, на порт 23).ssh -F configfile и ProxyCommand

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: Не удалось разрешить имя хоста бастион: Имя или служба не известны".

Но, если положить эту конфигурацию в ~/.ssh/config, то работает ssh test.server.

Как я понимаю, proxycommand не может использовать конфигурационный файл, указанный в командной строке. Если я хочу, чтобы моя команда в строке файла конфигурации для работы, мне нужно поставить

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

, но это, кажется, нарушают простой DRY принцип (порт и домен повторяются). Конфигурационный файл, который я готов построить, намного длиннее и сложнее.

Есть ли хороший способ достичь того, что я хочу, т. Е. Простой, не повторяющийся конфигурационный файл, который можно использовать в командной строке, для которой работает proxycommand?

+0

для 'ProxyCommand -F ssh_config' делает работу. Но тогда мне нужно повторить это везде в файле config_file. И изменение имени файла катастрофично. Поэтому мой вопрос о лучшем способе достижения этого должен все еще стоять. – ElBidoule

+1

Не могли бы вы объяснить нам, почему вы пытаетесь избежать использования обычного файла '~/.ssh/config'? Это, очевидно, самое простое решение. В противном случае указание «-F path/to/config» в любом месте, где вы вызываете ssh, вероятно, будет вашим лучшим выбором. – larsks

+0

@larsks Я хотел бы поместить этот файл конфигурации в репозиторий git и иметь незаменимую конфигурацию, с которой можно согласиться. Спасибо за быстрый, но удручающий ответ. – ElBidoule

ответ

1

Половина ответа: Вместо использования конфигурационного файла рекурсивно попробуйте не полагаться на конфигурацию вообще для прокси-команды.

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

Это позволяет ему быть портативным, но не решить другой вопрос того, чтобы сделать это на каждой линии, и делает изменения бастиона адрес хоста сложный процесс.

0

вам необходимо пройти ProxyCommand SSH -W% H:% р оплотом -F [ваш пользовательский SSH конфигурации]