Если ваш 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 чтобы узнать, доступна ли она в вашей системе.