0Pricing
Linux Server Deployment & SSH Mastery · Урок

Аутентификация по ключам 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 — локальная установка не требуется.

Все уроки этого курса

  1. Принципы протокола SSH
  2. Настройка SSH-клиента
  3. Аутентификация по ключам SSH
  4. Усиление защиты SSH-сервера
← Назад к Linux Server Deployment & SSH Mastery