Если ваш ssh-клиент достаточно новый, вы можете использовать ключевое слово Match
для файла конфигурации, чтобы иметь условную конфигурацию на основе целевого порта.
Match host somehost exec "test %p = 42"
IdentityFile ...
В приведенном выше примере будет применяться строка "IdentityFile" только в том случае, если целевой хост - это "somehost", а целевой порт - 42. Match
работает аналогично Host
в том смысле, что строки, следующие за ним (до следующей строки соответствия или строки хоста), применяются только к сеансам, которые соответствуют критериям. В этом примере строка Match проверяет, является ли хост "somehost", и также запускает внешнюю команду, которая считается совпадающей, если команда завершается со статусом 0.
Здесь выполняется команда test %p = 42
. «% p» будет заменено значением порта, которое ssh будет использовать до этой точки (либо значение по умолчанию 22, либо значение из командной строки). test
также известен как [
; это утилита командной строки, в основном используемая в сценариях оболочки как часть оператора if
. Здесь test
используется для проверки, является ли номер порта 42.
Ключевое слово Match
ssh_config было добавлено в OpenSSH в версии 6.5 или 6.6. Проверьте страницу ssh_config
чтобы узнать, доступна ли она в вашей системе.