SSH-аутентификация без копирования / вставки на основе открытого ключа

Я хочу убрать процесс ручного копирования открытых ключей на каждый из серверов для предоставления доступа.

Основная проблема, которую я пытаюсь решить, заключается в следующем:

  • Есть несколько серверов у нескольких облачных провайдеров.
  • Каждый раз, когда к команде присоединяется новый человек, мы должны копировать их открытые ключи на все серверы, чтобы они могли войти в систему.
  • Этот процесс повторяющийся и громоздкий, и я хотел удалить эту часть копирования и вставки с помощью некоторых своего рода настраиваемый механизм аутентификации.

Я изучил:

  • SSH-аутентификацию на основе аутентификатора Google

    • Это требует настройки среды на всех серверах, чтобы она могла работать, и это нормально, но у всех серверов будут свои собственные ключи и пользователи придется регистрироваться на всех серверах один за другим.
    • Кроме того, в приложении Google Authenticator будет присутствовать несколько TOTP, по одному для каждого сервера, что может вызвать путаницу, и это не выглядит хорошо.
    • Если часть сопоставления токенов каким-то образом может быть выгружена на центральный сервер, и серверы ssh просто должны передать токен этому серверу, то этот метод может работать.
  • Я видел это на серверах Azure: для сервера Azure, если включен вход на основе Azure, тогда всякий раз, когда пользователь пытается войти на сервер (после выполнения команды ssh в терминале), открывается браузер. и пользователю предлагается ввести адрес электронной почты и пароль, и при успешном входе в систему ему предоставляется токен. Затем пользователь должен ввести токен в терминал, чтобы получить доступ к серверу.

    • Я пытаюсь выяснить, как называется эта технология, и доступна ли бесплатная версия?
  • Создание пользователя Linux с паролем, а затем совместное использование имени пользователя и пароля для всей команды, чтобы они могли его использовать. Затем он может быть передан на Lastpass с именем пользователя и IP. Этот подход не помогает с аудитом, но он может работать, и я оставил его в крайнем случае.

Спасибо!

0
задан 9 June 2021 в 15:15

1 ответ

  1. Привет, если я понял вашу проблему, то думаю, что ее можно решить, создав простой скрипт с помощью команды OpenSSH secure file copy scp.

  2. Если всей команде нужны одинаковые права доступа к одним и тем же серверам, то моя рекомендация такова:

    • создайте файл authorized_keys на своем компьютере.
    • обновляйте этот файл в соответствии с потребностями команды вручную. (для этого можно использовать скрипт).
  3. Создайте скрипт для автоматического копирования обновленных authorized_keys с вашего компьютера на ваши серверы:

    • scp требует прав доступа к серверам для работы, поэтому скрипт должен запускаться с вашего или любого другого компьютера менеджера.
  4. Найдите скрипт в /usr/local/sbin/. на вашей машине, для возможности запуска скрипта из любого каталога на вашем компьютере.

  5. Дайте скрипту разрешение на выполнение командой chmod a+x /usr/local/sbin/scriptName.

    • Скрипт:
#/bin/bash!

read -p "Please Enter Path:" -r r1

scp  $r1 username@serverip:/home/username/.ssh/authorized_keys
#scp $r1 username@serverip:/home/username/.ssh/authorized_keys
#scp $r1 username@serverip:/home/username/.ssh/authorized_keys
#add more servers if needed....
#you could also use a switch to use which servers are relavent for the new user.

Обратите внимание, что если вы запускаете вашу службу ssh на других портах из соображений безопасности или по другим причинам, вам следует выполнить команду scp с опцией -P.

scp -P sshPort $r1 username@serverip:/home/username/.ssh/authorized_keys.

Пример скрипта, запущенного на моем собственном сервере: enter image description here

  1. Как я уже говорил, вы можете сделать скрипт лучше и добавить некоторые фильтры с помощью "switch", чтобы выбрать, на какие серверы вы хотите добавить ключи.
  2. Если ситуация проста, как вы сказали, и каждому члену команды, который присоединяется, нужны разрешения на все серверы, это решение должно сработать.

Надеюсь, это поможет вам.

Пожалуйста, комментируйте, если что-то непонятно или нужна еще какая-либо помощь в этом деле.

1
ответ дан 28 July 2021 в 11:30

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

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