23.06.2025

Как установить ключи SSH на CentOS

SSH (Secure Shell) — это защищённый протокол, который используется для управления и взаимодействия с серверами. Работая с сервером CentOS, вы, скорее всего, будете проводить большую часть времени в терминальной сессии, подключённой через SSH.

В этом руководстве мы рассмотрим процесс настройки SSH-ключей для сервера CentOS. Использование SSH-ключей позволяет обеспечить безопасный и удобный способ подключения к серверу и рекомендуется всем пользователям.

Создание пары RSA-ключей

Первый шаг — это генерация пары ключей на клиентском устройстве (чаще всего это ваш локальный компьютер):

ssh-keygen

По умолчанию команда ssh-keygen создаёт пару 2048-битных ключей RSA, что является надёжным вариантом для большинства задач (опционально можно использовать флаг -b 4096 для генерации более защищённого 4096-битного ключа).

После выполнения команды вы увидите следующее приглашение:

Generating public/private rsa key pair.
Enter file in which to save the key (/your_home/.ssh/id_rsa)

Нажмите ENTER, чтобы сохранить ключи в подкаталог .ssh в вашем домашнем каталоге, или укажите другой путь.
Если ранее вы уже создавали пару SSH-ключей, то может появиться такое сообщение:

/home/your_home/.ssh/id_rsa already exists.
Overwrite (y/n)?

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

Затем вам будет предложено:

Enter passphrase (empty for no passphrase):

Рекомендуется указать надёжную ключевую фразу, чтобы добавить дополнительный уровень защиты. Это предотвратит доступ к вашему серверу даже в случае компрометации вашего приватного ключа.

После этого вы увидите следующее сообщение:

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 присутствует в большинстве операционных систем. Для её использования у вас должен быть доступ к серверу по паролю. Введите следующую команду, указав удалённый хост и имя пользователя:

ssh-copy-id username@remote_host

Вы можете увидеть сообщение:

The authenticity of host '196.0.113.1 (196.0.113.1)' can't be established.
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, чтобы продолжить. Затем программа запросит пароль от вашей учётной записи на сервере:

username@203.0.113.1's password:

После ввода пароля утилита автоматически скопирует ваш публичный ключ в файл authorized_keys на сервере.

Копирование открытого ключа вручную

Если у вас нет ssh-copy-id, используйте команду cat для просмотра содержимого файла id_rsa.pub и перенесите его вручную в файл authorized_keys на сервере. Например:

cat ~/.ssh/id_rsa.pub

На сервере выполните:

echo public_key_string >> ~/.ssh/authorized_keys

Отключение парольной аутентификации

После настройки ключей рекомендуется отключить вход по паролю, чтобы повысить уровень безопасности. Для этого откройте файл /etc/ssh/sshd_config и измените параметр PasswordAuthentication на no:

sudo vi /etc/ssh/sshd_config

После внесения изменений перезапустите службу SSH:

sudo systemctl restart sshd

Заключение

Теперь ваш сервер настроен для работы с SSH-ключами, что обеспечивает безопасный и удобный доступ к нему. Не забудьте регулярно обновлять ключи и использовать надёжные фразы для их защиты.

FAQ

  1. Какой размер ключа лучше выбрать? Рекомендуется использовать ключи размером 2048 бит. Для повышенной безопасности можно выбрать 4096-битные ключи.
  2. Можно ли использовать ключи для нескольких пользователей? Да, добавьте публичные ключи каждого пользователя в файл authorized_keys соответствующего аккаунта.
  3. Как защитить сервер от перебора паролей? Отключите аутентификацию по паролю в файле конфигурации SSH.