Аутентификация по ключам SSH
Создавайте пары ключей SSH, размещайте открытые ключи на серверах и отключайте аутентификацию по паролю для повышения безопасности.
«Аутентификация по ключам SSH» — бесплатный урок Linux Server Deployment & SSH Mastery на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Linux Server Deployment & SSH Mastery, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Linux Server Deployment & SSH Mastery содержит 4 уроков всего.
Раскройте возможности SSH с помощью пар ключей
Добро пожаловать! В этом уроке Вы узнаете об аутентификации по ключам SSH. Этот способ гораздо безопаснее и удобнее традиционного ввода пароля при входе на сервер.
Ключи SSH подобны цифровому рукопожатию: они подтверждают Вашу личность без необходимости каждый раз вводить пароль.
Возможности открытого и закрытого ключей
Аутентификация по ключу SSH основана на паре криптографических ключей:
- Закрытый ключ: этот ключ хранится на Вашем локальном компьютере и должен оставаться секретным. Представьте его как уникальный ключ от Вашего цифрового замка.
- Открытый ключ: этот ключ размещается на сервере, к которому Вы хотите получить доступ. Это специальный замок, открыть который можно только с помощью Вашего закрытого ключа.
При попытке подключения сервер проверяет Ваш клиент, а клиент использует закрытый ключ, чтобы подтвердить свою подлинность.
Создание ключей SSH
Вы можете создать собственную пару ключей SSH с помощью команды ssh-keygen на локальном компьютере. По умолчанию создаётся пара ключей RSA.
Когда появится запрос, Вы можете выбрать парольную фразу для защиты закрытого ключа. Это обеспечивает дополнительный уровень безопасности: перед использованием ключа потребуется ввести парольную фразу.
ssh-keygenНастройка создания ключей
Для повышения безопасности рекомендуется использовать более новые типы ключей, например ED25519. Вы также можете указать собственное имя файла для ключей.
-t ed25519: задаёт алгоритм ED25519.-f ~/.ssh/my_server_key: создаёт файлы с именамиmy_server_keyиmy_server_key.pub.
Всегда используйте надёжную парольную фразу для закрытого ключа!
ssh-keygen -t ed25519 -f ~/.ssh/my_server_keyЧто нужно знать о файлах ключей
После создания ключи обычно хранятся в каталоге ~/.ssh/ на локальном компьютере. Там Вы найдёте два файла:
id_ed25519(илиid_rsa): это Ваш закрытый ключ. Храните его в полной безопасности и никогда никому не передавайте.id_ed25519.pub(илиid_rsa.pub): это Ваш открытый ключ. Именно этот файл нужно скопировать на сервер.
Права доступа к этим файлам также очень важны для безопасности!
Простое размещение открытого ключа
Самый простой способ поместить открытый ключ на сервер — использовать команду ssh-copy-id. Она безопасно копирует Ваш открытый ключ в файл ~/.ssh/authorized_keys на сервере.
При первом выполнении этой команды для нового сервера Вам потребуется ввести пароль. После этого вход по паролю часто больше не требуется.
ssh-copy-id user@your_server_ipРазмещение открытого ключа вручную
Если команда ssh-copy-id недоступна или Вы предпочитаете ручной способ, Вы можете самостоятельно скопировать открытый ключ на сервер.
Сначала убедитесь, что каталог ~/.ssh существует на сервере и имеет правильные права доступа (700). Затем добавьте открытый ключ в конец файла ~/.ssh/authorized_keys (права доступа — 600).
cat ~/.ssh/id_ed25519.pub | ssh user@your_server_ip \
"mkdir -p ~/.ssh && chmod 700 ~/.ssh && \
cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"Подключение с помощью новых ключей
После размещения открытого ключа на сервере Вы можете подключаться по SSH. Если Вы использовали имя ключа по умолчанию, например id_rsa или id_ed25519, SSH найдёт его автоматически.
Если Вы использовали собственное имя ключа, например my_server_key, его нужно указать с помощью флага -i.
ssh -i ~/.ssh/my_server_key user@your_server_ipОтключение входа по паролю для безопасности
Для повышения безопасности настоятельно рекомендуется отключить аутентификацию по паролю на сервере после того, как вход по ключу начнёт работать.
Отредактируйте файл конфигурации службы SSH (/etc/ssh/sshd_config) на сервере, замените PasswordAuthentication yes на no, а затем перезапустите службу SSH (например, с помощью sudo systemctl restart sshd или sudo service ssh restart).
# On the server, edit /etc/ssh/sshd_config
PasswordAuthentication no
# Then restart SSH service
sudo systemctl restart sshdПроверка аутентификации по ключу
Вы узнали, как работает аутентификация по ключам SSH, как создавать ключи и размещать их на сервере. Проверьте свои знания!
Итоги: защита SSH с помощью ключей
Отличная работа! Вы освоили аутентификацию по ключам SSH. Вы узнали:
- разницу между открытыми и закрытыми ключами;
- как создавать пары ключей с помощью
ssh-keygen; - как размещать открытый ключ на сервере с помощью
ssh-copy-idили вручную; - как безопасно подключаться без паролей;
- зачем и как отключать аутентификацию по паролю на сервере.
Ключи SSH — важнейший инструмент для безопасного и эффективного управления серверами. Продолжайте практиковаться!
Часто задаваемые вопросы
Урок «Аутентификация по ключам SSH» бесплатный?
Да — полный текст урока «Аутентификация по ключам SSH» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Linux Server Deployment & SSH Mastery, подпишись на CoddyKit PRO. Курс Linux Server Deployment & SSH Mastery содержит 4 уроков всего.
Чему я научусь в уроке «Аутентификация по ключам SSH»?
Создавайте пары ключей SSH, размещайте открытые ключи на серверах и отключайте аутентификацию по паролю для повышения безопасности. Ты практикуешь Linux Server Deployment & SSH Mastery с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Linux Server Deployment & SSH Mastery?
Предыдущий опыт не требуется. Linux Server Deployment & SSH Mastery на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.
Сколько времени занимает урок «Аутентификация по ключам SSH»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Linux Server Deployment & SSH Mastery?
Да. Каждый урок Linux Server Deployment & SSH Mastery включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Принципы протокола SSH
- Настройка SSH-клиента
- Аутентификация по ключам SSH
- Усиление защиты SSH-сервера