Я пытаюсь настроить ssh сервер, который является своего рода перемычкой к другим серверам, доступным через ssh . Для этого я использую ForceCommand следующим образом:

Match Group g_ssh
ForceCommand nc -q0 my_internal_server 22

Это работает отлично до сих пор. Но теперь я хочу использовать совпадение и с директивой Host . Так что мой новый конфиг выглядит так:

Match Group g_ssh Host my_internal_server
ForceCommand nc -q0 my_internal_server 22
Match Group g_ssh Host my_2_int_server
ForceCommand nc -q0 my_2_int_server

Но это не сработало. Это не работает из-за неработающей директивы Host .

Я также попробовал:

Match Host my_internal_Server
ForceCommand nc -q0 my_internal_server 22

Это тоже не сработало.

Есть ли какие-либо предложения, как использовать Match Host с Group?

1 ответ1

0

Вы не можете сопоставить целевой хост - входящее соединение не будет ничего знать об этом.

Если вы посмотрите на текст моего ответа https://superuser.com/a/392717/19223, то первый элемент рассказывает о файле .config пользователя , а второй - о файле sshd_config сервера .

В конечном итоге я бы порекомендовал использовать Match Group и создавать разных пользователей для каждого пункта назначения. Что-то вроде

Match Group group1 
    ForceCommand nc -q0 my_internal_server 22

Match Group group2
    ForceCommand nc -q0 my_2_int_server 22

Затем создайте разных пользователей, скажем, user_1 принадлежащий group1 и user_2 принадлежащий group2 . Затем в пользовательском файле .ssh/config :

Host internal_server_1
    ProxyCommand ssh -q server
    User user_1
Host internal_server_2
    ProxyCommand ssh -q server
    User user_2

Таким образом, пользователь может использовать

ssh internal_server_1

без необходимости заботиться об именах пользователей и хостах назначения.

Не забудьте создать учетную запись пользователя на вашем главном сервере для каждой учетной записи user_1, user_2 и вставить туда правильный ключ SSH.

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