SSH (Secure Shell) — это защищённый протокол, который используется для управления и взаимодействия с серверами. Работая с сервером CentOS, вы, скорее всего, будете проводить большую часть времени в терминальной сессии, подключённой через SSH.
В этом руководстве мы рассмотрим процесс настройки SSH-ключей для сервера CentOS. Использование SSH-ключей позволяет обеспечить безопасный и удобный способ подключения к серверу и рекомендуется всем пользователям.
Создание пары RSA-ключей
Первый шаг — это генерация пары ключей на клиентском устройстве (чаще всего это ваш локальный компьютер):
По умолчанию команда ssh-keygen создаёт пару 2048-битных ключей RSA, что является надёжным вариантом для большинства задач (опционально можно использовать флаг -b 4096 для генерации более защищённого 4096-битного ключа).
После выполнения команды вы увидите следующее приглашение:
Enter file in which to save the key (/your_home/.ssh/id_rsa)
Нажмите ENTER, чтобы сохранить ключи в подкаталог .ssh в вашем домашнем каталоге, или укажите другой путь.
Если ранее вы уже создавали пару SSH-ключей, то может появиться такое сообщение:
Overwrite (y/n)?
Если вы выберете перезапись существующего ключа, вы потеряете возможность использовать предыдущий ключ для аутентификации. Будьте осторожны с этим выбором.
Затем вам будет предложено:
Рекомендуется указать надёжную ключевую фразу, чтобы добавить дополнительный уровень защиты. Это предотвратит доступ к вашему серверу даже в случае компрометации вашего приватного ключа.
После этого вы увидите следующее сообщение:
Your identification has been saved in /your_home/.ssh/id_rsa.
Your public key has been saved in /your_home/.ssh/id_rsa.pub.
The key fingerprint is:
a9:49:2e:2a:5e:33:3e:a9:de:4e:77:11:58:b6:90:26 username@remote_host
The key's randomart image is:
+--[ RSA 2048]----+
| .=....o |
| E o= . |
| o. =o |
| ..+++ |
| ..S === |
| o ++ o. |
| =.+. ==+= |
| . =+.. |
| o= ...++. |
+-----------------+
Теперь у вас есть пара ключей — открытый и закрытый. Следующий шаг — загрузка открытого ключа на сервер для настройки аутентификации.
Копирование открытого ключа на сервер
Самый удобный способ передать открытый ключ на сервер CentOS — это воспользоваться утилитой ssh-copy-id. Если утилита недоступна, можно использовать альтернативные методы, такие как ручное копирование ключа или его передача через SSH с использованием пароля.
Копирование с помощью ssh-copy-id
Утилита ssh-copy-id присутствует в большинстве операционных систем. Для её использования у вас должен быть доступ к серверу по паролю. Введите следующую команду, указав удалённый хост и имя пользователя:
Вы можете увидеть сообщение:
ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe.
Are you sure you want to continue connecting (yes/no)? yes
Введите yes, чтобы продолжить. Затем программа запросит пароль от вашей учётной записи на сервере:
После ввода пароля утилита автоматически скопирует ваш публичный ключ в файл authorized_keys на сервере.
Копирование открытого ключа вручную
Если у вас нет ssh-copy-id, используйте команду cat для просмотра содержимого файла id_rsa.pub и перенесите его вручную в файл authorized_keys на сервере. Например:
На сервере выполните:
Отключение парольной аутентификации
После настройки ключей рекомендуется отключить вход по паролю, чтобы повысить уровень безопасности. Для этого откройте файл /etc/ssh/sshd_config и измените параметр PasswordAuthentication на no:
После внесения изменений перезапустите службу SSH:
Заключение
Теперь ваш сервер настроен для работы с SSH-ключами, что обеспечивает безопасный и удобный доступ к нему. Не забудьте регулярно обновлять ключи и использовать надёжные фразы для их защиты.
FAQ
- Какой размер ключа лучше выбрать? Рекомендуется использовать ключи размером 2048 бит. Для повышенной безопасности можно выбрать 4096-битные ключи.
- Можно ли использовать ключи для нескольких пользователей? Да, добавьте публичные ключи каждого пользователя в файл authorized_keys соответствующего аккаунта.
- Как защитить сервер от перебора паролей? Отключите аутентификацию по паролю в файле конфигурации SSH.