В свете неразберихи с CentOS вы, возможно, решили перенести свои серверы Linux на новый форк, AlmaLinux.
🐧 Бета-версия AlmaLinux доступна для скачивания
Если это так, то вы либо обнаружили, что этот процесс невероятно автоматический, либо это немного сложно. После того, как вы настроили и запустили AlmaLinux, первое, что вам нужно сделать, это настроить двухфакторную аутентификацию (2FA) для SSH.
В конце концов, вы не захотите полагаться только на SSH для аутентификации на своих серверах!
Как справиться этой задачей?
Позвольте мне показать вам решение этого кейса
Что вам понадобится
- Пользователь с привилегиями sudo
- Приложение для аутентификации на вашем мобильном устройстве (например Authy на Android или iOS)
Как установить команду google-Authenticator на AlmaLinux
Во-первых, мы должны установить команду google-Authenticator на AlmaLinux.
Это программное обеспечение находится в репозитории EPEL, который необходимо сначала установить с помощью команды:
sudo dnf install epel-release -y
После включения репозитория установите программное обеспечение (и инструмент, который позволит выводить QR-коды в окне терминала) с помощью команды:
sudo dnf install google-authenticator grencode-libs -y
Как создать SSH-ключ
На самом деле вам не нужен SSH-ключ на сервере AlmaLinux, но вам понадобится каталог ~/.ssh.
Вы можете создать его вручную, но вам нужно будет убедиться, что права на него выданы правильно, иначе возникнут проблемы.
Из-за этого лучше просто позволить SSH обработать создание этого каталога.
Чтобы создать ключ SSH, введите команду:
ssh-keygen
Примите расположение по умолчанию (~/.ssh) и создайте пароль для ключа.
Как сгенерировать QR-код для 2FA
Чтобы добавить AlmaLinux в ваше приложение 2FA, мы должны запустить команду google-authentication.
Однако мы собираемся запустить его так, чтобы он выгружал необходимый файл во вновь созданный каталог ~/.ssh.
Команда для этого будет следующая:
google-authenticator -s ~/.ssh/google_authenticator
Обязательно ответьте y на все вопросы.
Когда вы увидите QR-код, выведенный в окне терминала (вам, вероятно, придется развернуть окно терминала, чтобы просмотреть весь код), обязательно добавьте его с помощью приложения для проверки подлинности на мобильном устройстве – как вы это сделаете, будет зависеть от используемого приложени.
Поскольку мы храним файл google_authenticator в нестандартном месте, нам нужно восстановить контекст SELinux с помощью команды:
sudo restorecon -Rv ~/.ssh/
Как настроить SSH для 2FA
Теперь, когда у вас настроена двухфакторная аутентификация, вам нужно настроить SSH для работы с ним.
Откройте файл конфигурации демона SSH с помощью команды:
sudo nano /etc/pam.d/sshd
Внизу этого файла добавьте следующие две строки:
auth required pam_google_authenticator.so secret=/home/${USER}/.ssh/google_authenticator nullok
auth required pam_permit.so
Сохраните и закройте файл. Откройте файл конфигурации SSH с помощью команды:
sudo nano /etc/ssh/sshd_config
Найдите две строчки:
#ChallengeResponseAuthentication yes
ChallengeResponseAuthentication no
Измените эти строки на:
ChallengeResponseAuthentication yes
#ChallengeResponseAuthentication no
Сохраните и закройте файл.
Перезапустите демон SSH с помощью команды:
sudo systemctl restart sshd
Как войти в систему через SSH и 2FA
Откройте второй терминал на вашем локальном компьютере и подключитесь к удаленному серверу по SSH.
Сначала вам будет предложено ввести пароль (или пароль ключа SSH, если у вас настроена аутентификация ключа SSH), а затем код 2FA.
Если вы зайдете – все ок!
Если нет, вернитесь и проверьте ход настройки!