Как настроить ssh_config с несколькими IdentityFiles так, чтобы сервер s sh не сталкивался с проблемой «Слишком много ошибок аутентификации» - PullRequest
0 голосов
/ 02 мая 2020

Я работаю над настройкой проверки подлинности ключа publi c для s sh на нескольких серверах с несколькими пользователями. Задача состоит в том, чтобы выполнить одну такую ​​настройку на сервере с тестовыми пользователями, такими как test1,test2,test3 upto test20. Проблема, которую я пытаюсь решить, состоит в том, как заставить s sh загружать только указанный c IdentityFile, основанный на входе пользователя в систему, вместо того, чтобы пытаться использовать все удостоверения, несмотря на использование IdentitiesOnly (хотя согласно документам, похоже, он только предотвращает загрузку ключей агента s sh). Я мог бы увеличить MaxAuthTries на стороне сервера s sh, но это хорошее решение, учитывая, что он может попытаться загрузить как минимум 20 ключей

Настройки и ограничения, которые я имею,

  • В Jenkins выполняются задания по сборке, которые используют сценарии для передачи sh на тот же сервер для запуска тестов.
  • Учитывая, что $ test является переменной, которая может быть любым тестом пользователь из test1 to test20, для каждого запуска скрипт запускает " s sh $test@servername". Каждый прогон jenkins мог выбрать любого тестового пользователя.
  • Я не могу вносить какие-либо обновления в сценарии, поскольку они принадлежат другой команде ie, я не могу использовать псевдоним нескольких хостов. Мне нужно использовать то же имя сервера.
  • Теперь моя установка s sh выглядит следующим образом
    1. Добавлены закрытые ключи для каждого из тестовых пользователей .ssh папок с правильными разрешениями
    2. Добавлен ключ публикации в файл authorized_keys для каждого из тестовых пользователей
    3. ssh_config, расположенный в /etc/ssh/ для образца 10 test users, выглядит следующим образом
# Site-wide defaults for some commonly used options.  For a comprehensive
# list of available options, their meanings and defaults, please see the
# ssh_config(5) man page.
Host server1
        Match user test1
        IdentityFile /home/test1/.ssh/id_rsa.test1
        Match user test2
        IdentityFile /home/test2/.ssh/id_rsa.test2
        Match user test3
        IdentityFile /home/test3/.ssh/id_rsa.test3
        Match user test4
        IdentityFile /home/test4/.ssh/id_rsa.test4
        Match user test5
        IdentityFile /home/test5/.ssh/id_rsa.test5
        Match user test6
        IdentityFile /home/test6/.ssh/id_rsa.test6
        Match user test7
        IdentityFile /home/test7/.ssh/id_rsa.test7
        Match user test8
        IdentityFile /home/test8/.ssh/id_rsa.test8
        Match user test9
        IdentityFile /home/test9/.ssh/id_rsa.test9
        Match user test10
        IdentityFile /home/test10/.ssh/id_rsa.test10
Host *
    IdentitiesOnly yes

#   ForwardAgent no
#   ForwardX11 no
#   RhostsRSAAuthentication no
#   RSAAuthentication yes
#   PasswordAuthentication yes

И в идеале, чтобы избежать дублирования, формат мог бы быть

Host server1
        Match user test*
        IdentityFile /home/test1/.ssh/id_rsa.test*

Но IdentityFile, похоже, не поддерживает подстановочные знаки / регулярные выражения. Как я смогу выполнить такую ​​настройку? Дайте мне знать, если у вас есть какая-либо другая информация.

Заранее спасибо

...