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

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

Например, скажем, тот Bob выполнения:

ssh nerd@server_ip

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

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

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

Больше разъяснения

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

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

1 ответ

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

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

Однако вы могли бы дать совет Бобу и Джулии о том, как это настроить самостоятельно ~/.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

В зависимости от того, что Бобу и Джулии нужно делать на сервере, вы также можете заставить их использовать открытые ключи для аутентификации и жестко записать данную команду в файл авторизованные_ключи. Преимущество этого состоит в том, что в файле author_keys вы можете требовать определенный адрес «от» и принудительно выполнять определенную команду. См. Раздел «ФОРМАТ ФАЙЛА AUTHORIZED_KEYS» на странице справки sshd (8). Тем не менее, это только позволит вам ограничить использование определенного открытого ключа с определенного адреса, но не будет перенаправлять соединение на другую учетную запись, как вы изначально просили.

0
ответ дан 8 December 2019 в 01:56

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

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