Как перенаправить SSH-соединение в зависимости от входящего адреса?

Недавно мне была задана проблема, связанная с необходимостью перенаправления входящего соединения на конкретного пользователя в зависимости от их общедоступного IP-адреса ...

Например, предположим, что Боб работает:

ssh nerd@server_ip

как я мог перенаправить его (123.123.123.123 в этом примере), так что вместо входа в систему как nerd он регистрируется как admin?

Что я пробовал

Я пробовал разные конфигурации и комбинации с MatchAddress и MatchUser ... Я также пробовал использовать скрипт с ForceCommand в SSH ... [ ! d4]

Подробнее Уточнение

Чтобы уточнить, я хочу перенаправить Боба в предыдущем примере на пользователя «admin» из-за его IP-адреса (123.123.123.123). Но если другой человек, скажем, Джулия должен был бежать ssh nerd@server_ip, он перенаправил бы ее на non-admin@server_ip, потому что ее IP был (1.1.1.1) ...

1
задан 17 March 2018 в 01:58

2 ответа

Клиентская сторона

Я не думаю, что это можно сделать как часть конфигурации ssh-сервера. Параметр «Матч» не позволяет использовать с ним директиву «Пользователь», чтобы заставить другую учетную запись пользователя, чем запрошенная.

Однако вы могли бы дать советы Бобу и Джулии о том, как настроить это в их собственном ~/.ssh/config. Например, скажите Бобам добавить в этот файл следующее:

Host server_ip User admin

И Джулия должна добавить:

Host server_ip User non-admin

Теперь, если они добавят эту конфигурацию на своих клиентских хостах 123.123.123.123 или 1.1.1.1 это позволило бы им просто запустить

ssh server_ip

, а клиент ssh будет использовать admin или non-admin в качестве пользовательской части соединения, в зависимости от клиента, где он выполняется.

Это точно не то, о чем вы просите, но я думаю, что ближе всего вы можете использовать ssh.

Использовать authorized_keys

В зависимости от того, что нужно сделать Бобу и Джулии на сервере, вы также можете заставить их использовать открытые ключи для аутентификации и жесткого кода для данной команды в файле authorized_keys. Преимущество этого заключается в том, что в файле authorized_keys может потребоваться определенный адрес «from» и принудительно выполнить определенную команду. См. Раздел «AUTHORIZED_KEYS FILE FORMAT» на странице руководства sshd (8). Тем не менее, это позволит вам ограничить определенный открытый ключ, который будет использоваться с определенного адреса, он не будет перенаправлять соединение с другой учетной записью, как вы изначально задали.

0
ответ дан 17 July 2018 в 18:39

Клиентская сторона

Я не думаю, что это можно сделать как часть конфигурации ssh-сервера. Параметр «Матч» не позволяет использовать с ним директиву «Пользователь», чтобы заставить другую учетную запись пользователя, чем запрошенная.

Однако вы могли бы дать советы Бобу и Джулии о том, как настроить это в их собственном ~/.ssh/config. Например, скажите Бобам добавить в этот файл следующее:

Host server_ip User admin

И Джулия должна добавить:

Host server_ip User non-admin

Теперь, если они добавят эту конфигурацию на своих клиентских хостах 123.123.123.123 или 1.1.1.1 это позволило бы им просто запустить

ssh server_ip

, а клиент ssh будет использовать admin или non-admin в качестве пользовательской части соединения, в зависимости от клиента, где он выполняется.

Это точно не то, о чем вы просите, но я думаю, что ближе всего вы можете использовать ssh.

Использовать authorized_keys

В зависимости от того, что нужно сделать Бобу и Джулии на сервере, вы также можете заставить их использовать открытые ключи для аутентификации и жесткого кода для данной команды в файле authorized_keys. Преимущество этого заключается в том, что в файле authorized_keys может потребоваться определенный адрес «from» и принудительно выполнить определенную команду. См. Раздел «AUTHORIZED_KEYS FILE FORMAT» на странице руководства sshd (8). Тем не менее, это позволит вам ограничить определенный открытый ключ, который будет использоваться с определенного адреса, он не будет перенаправлять соединение с другой учетной записью, как вы изначально задали.

0
ответ дан 23 July 2018 в 19:28

Другие вопросы по тегам:

Похожие вопросы: