Введение / Зачем это нужно
Добавление публичного SSH-ключа позволяет вам входить на удалённые серверы без пароля. Этот метод повышает безопасность и ускоряет рутинные операции администрирования.
Требования / Подготовка
- ОС: Ubuntu 22.04 LTS, Debian 11 Bullseye, AlmaLinux 9 (другие дистрибутивы Linux работают аналогично).
- Установленный SSH-сервис (
sshдолжен быть в PATH). - Существующий SSH-ключ или возможность его создания.
- Права на запись в домашнюю директорию (
~/.ssh).
Пошаговая инструкция
Шаг 1: Генерация SSH-ключа
Если у вас еще нет пары ключей, создайте их с помощью команды ssh-keygen -t rsa -b 4096 -C "user@host". Принимайте значения по умолчанию или укажите свой комментарий.
Шаг 2: Копирование публичного ключа
Публичный ключ находится в файле ~/.ssh/id_rsa.pub. Скопируйте его содержимое: cat ~/.ssh/id_rsa.pub.
Шаг 3: Создание файла authorized_keys
Создайте директорию ~/.ssh, если она отсутствует: mkdir -p ~/.ssh. Установите правильные права: chmod 700 ~/.ssh. Добавьте публичный ключ в файл authorized_keys: echo "PASTE_PUBLIC_KEY_HERE" >> ~/.ssh/authorized_keys. Затем установите права файла: chmod 600 ~/.ssh/authorized_keys.
Шаг 4: Проверка прав доступа
Убедитесь, что файл настроен правильно: ls -l ~/.ssh/authorized_keys. Он должен отображать -rw------- для владельца.
Шаг 5: Тест подключения
Попробуйте подключиться с использованием нового ключа: ssh user@host "echo OK". Если сервер отвечает сообщением «OK», ключ работает.
Проверка результата
Подключитесь к целевому серверу, используя SSH: ssh user@host. Если вход происходит без запроса пароля, настройка успешна.
Возможные проблемы
- Неправильные права доступа: если
authorized_keysимеет права644или другие, SSH-сервис отклонит ключ. Исправьте:chmod 600 ~/.ssh/authorized_keys. - Лишние пробелы в ключе: при вставке ключа могут оставаться скрытые символы. Скопируйте ключ напрямую с помощью
cat, чтобы избежать ошибок. - Отсутствие файла
~/.ssh: система может не разрешить запись. Создайте директорию с правильными правами:mkdir -p ~/.ssh && chmod 700 ~/.ssh.