У меня есть следующая запись в моем файле .ssh/config:

Host myhost
    Hostname localhost
    User me
    ServerAliveInterval 30
    ProxyCommand ssh -q external-relay /usr/bin/nc -w 90 localhost 9889

Очень просто, это позволяет мне получить доступ к myhost из-за пределов его сети, отскочив от external-relay .

В большинстве случаев я хочу только SSH к myhost без создания каких-либо SSH-туннелей, но иногда я хочу создавать различные туннели для разных целей.

В настоящее время я просто вручную добавляю записи туннеля -L при подключении к ssh к myhost но становится все труднее запомнить, какие наборы портов мне нужны для каких целей.

Я мог бы просто добавить эти пользовательские команды переадресации портов в качестве псевдонимов, но мне бы очень хотелось иметь отдельные именованные записи в моем файле .ssh/config которые в основном создают соединение с myhost и добавляют необходимые туннели, но я не Я хочу дублировать всю конфигурацию myhost каждый раз, потому что, если / когда я изменяю external-relay , я не хочу помнить, чтобы менять его в каждой записи, которая его использовала.

Есть ли способ создать запись, которая наследует запись myhost , и просто добавляет необходимые директивы LocalForward для этого конкретного случая туннеля?

1 ответ1

1

Вы должны быть в состоянии сделать:

Host myhost-*
    Hostname localhost
    User me
    ServerAliveInterval 30
    ProxyCommand ssh -q external-relay /usr/bin/nc -w 90 localhost 9889

с последующим:

Host myhost-1
    LocalForward ...

Host myhost-2
    RemoteForward ...
:

myhots-1 и myhost-2 получат настройки из myhost-* (но НЕ МОГУТ их переопределить).

Вам определенно следует заглянуть в начало раздела DESCRIPTION (чтобы увидеть, как применяются параметры к соединению) и раздела PATTERNS на странице man ssh_config.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .