Linux

Настройка SSH-ключей для авторизации на Linux (пошаговое руководство)

В этом руководстве вы научитесь сгенерировать SSH-ключ, скопировать его на удаленный хост и настроить автоматическую авторизацию без пароля. Подойдет для начинающих системных администраторов и DevOps-инженеров.

Обновлено 8 августа 2026 г.
5-10 мин
Средняя
FixPedia Team
Применимо к:Ubuntu 22.04Debian 11CentOS 8Fedora 35

Введение / Зачем это нужно

SSH-ключевая аутентификация заменяет парольную защиту более надёжным и удобным способом. После настройки вы сможете подключаться к любым удалённым серверам без ввода пароля, что ускоряет работу и повышает безопасность. В этом гайде мы настроим ключевую авторизацию на популярных дистрибутивах Linux: Ubuntu, Debian, CentOS и Fedora.

Требования / Подготовка

  • Установленный SSH-сервер (sshd) на целевом хосте.
  • Доступ к консоли целевого хоста с правами суперпользователя (root или sudo).
  • Установленный SSH-клиент на рабочей станции.
  • Bash или совместимый интерпретатор командной строки.

⚠️ Важно: Все команды выполняйте от имени суперпользователя, иначе могут возникнуть ошибки доступа.

Шаг 1: Установите OpenSSH (если отсутствует)

На Debian/Ubuntu:

sudo apt update && sudo apt install openssh-client openssh-server

На RHEL/CentOS/Fedora:

sudo yum install openssh-clients openssh-server   # CentOS/RHEL
# или
sudo dnf install openssh-clients openssh-server   # Fedora

Шаг 2: Сгенерируйте SSH-ключевую пару

ssh-keygen -t ed25519 -C "workstation"

Примите стандартное расположение (~/.ssh/id_ed25519) и при желании защитите ключ фразой. Для автоматизации вы можете пропустить ввод пароля, добавив -N ''.

Шаг 3: Скопируйте публичный ключ на удалённый хост

Самый простой способ — использовать ssh-copy-id:

ssh-copy-id user@host

Если утилита отсутствует, вручную добавьте содержимое публичного ключа:

cat ~/.ssh/id_ed25519.pub >> ~/.ssh/authorized_keys

Шаг 4: Настройте права доступа к каталогу .ssh

Неправильные права — частая причина неудач подключения.

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

Если вы добавляли ключ для root, выполните те же команды для /root/.ssh.

Шаг 5: Проверьте SSH-подключение без пароля

ssh -i ~/.ssh/id_ed25519 user@host 'echo "SSH работает"'

Если вы видите SSH работает, авторизация настроена успешно.

Шаг 6: Опционально: разрешите использование ключа для пользователя root

Добавьте тот же публичный ключ в авторизационный файл root:

sudo cat ~/.ssh/id_ed25519.pub >> /root/.ssh/authorized_keys
chmod 600 /root/.ssh/authorized_keys

Теперь вы можете подключаться к системе от имени root без пароля.

Проверка результата

  1. Убедитесь, что каталог ~/.ssh имеет права 700.
  2. Проверьте содержимое authorized_keys:
    cat ~/.ssh/authorized_keys
    
  3. Попробуйте выполнить команду с использованием приватного ключа:
    ssh -i ~/.ssh/id_ed25519 user@host ls -l /tmp
    

Если вы видите содержимое каталога, ключ работает корректно.

Возможные проблемы

  • Ошибка доступа при подключении – убедитесь, что authorized_keys имеет права 600 и владельцем является тот же пользователь, от чьего имени вы подключаетесь.
  • ssh-keygen не найден – установите пакет openssh-client, как описано в шаге 1.
  • ssh-copy-id отсутствует – выполните ручное добавление ключа или установите openssh-client (он включает эту утилиту).
  • Ключ отклонён сервером – проверьте формат файла authorized_keys (должна быть одна строка, начинающаяся с ssh-rsa, ssh-ed25519 и т.д.).

Исправив перечисленные ошибки, вы сможете беспрепятственно использовать SSH-авторизацию на всех поддерживаемых дистрибутивах.

Часто задаваемые вопросы

Как сгенерировать SSH-ключевую пару?
Почему не получается подключиться после копирования ключа?
Можно ли использовать один ключ для нескольких пользователей?
Что делать, если `ssh-keygen` не установлен?

Полезное

Установите OpenSSH (если отсутствует)
Сгенерируйте SSH-ключевую пару
Скопируйте публичный ключ на удалённый хост
Настройте права доступа к каталогу .ssh
Проверьте SSH-подключение без пароля
Опционально: разрешите использование ключа для пользователя root

Эта статья помогла вам решить проблему?