Linux

Базовый гайд по SSH: настройка, подключение и работа с ключами

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

Обновлено 10 июля 2026 г.
5-10 мин
Низкая
FixPedia Team
Применимо к:Ubuntu 22.04Debian 12Fedora 38CentOS Stream 9

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

SSH (Secure Shell) — это базовый инструмент для удалённого управления Linux-сервером. С его помощью можно безопасно выполнять команды, передавать файлы и администрировать систему из любой точки сети. После выполнения этого гайда у вас будет готовый набор навыков для настройки SSH, подключения к удалённым хостам и использования SSH-ключей для автоматической и защищённой аутентификации.

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

  • Дистрибутив Linux (Ubuntu 22.04, Debian 12, Fedora 38, CentOS Stream 9)
  • Права суперпользователя (или sudo) для установки и настройки служб
  • Существующий пользователь с возможностью входа по паролю (или возможность создать его)
  • Базовое понимание работы с терминалом и командной строки

Пошаговая инструкция

Шаг 1: Установить SSH-сервер

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

# Для Debian/Ubuntu
sudo apt update && sudo apt install openssh-server -y

# Для Fedora/CentOS
sudo dnf install openssh-server -y

После установки сервис автоматически запустится. Проверьте его статус:

sudo systemctl status ssh

Шаг 2: Настроить SSH-клиент

Убедитесь, что клиентская часть установлена:

ssh -V

Сгенерируйте новую пару ключей Ed25519 (рекомендуется современным SSH):

ssh-keygen -t ed25519 -C "mykey"

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

Шаг 3: Подключиться к удалённому хосту

Скопируйте публичный ключ на целевой сервер с помощью утилиты ssh-copy-id:

ssh-copy-id user@remote-ip

Если ключ ещё не добавлен на сервер, вас попросят ввести пароль для локного пользователя (user). После успешного копирования подключитесь с использованием ключа:

ssh user@remote-ip

Если подключение успешно, вы окажетесь в удалённой командной строке.

Шаг 4: Использовать SSH-ключ для автоматической аутентификации

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

Откройте файл конфигурации клиента (~/.ssh/config) и добавьте следующий блок:

Host remote-host
    HostName remote-ip
    User user
    IdentityFile ~/.ssh/id_ed25519
    StrictHostKeyChecking no

Сохраните файл (Ctrl+O, Enter). Теперь вы можете подключаться одной командой:

ssh remote-host

Без ввода пароля и с использованием ключа.

Шаг 5: Проверить и решить типичные проблемы

  • Служба не работает: sudo systemctl restart ssh и sudo systemctl enable ssh.
  • Проблемы с правами доступа: убедитесь, что ~/.ssh/id_rsa имеет права 600, а директория ~/.ssh700.
  • Брандмауэр блокирует порт: откройте порт 22, например:
# UFW
sudo ufw allow ssh

# firewalld
sudo firewall-cmd --add-service=ssh --permanent
sudo firewall-cmd --reload
  • Ошибки аутентификации: проверьте, что публичный ключ добавлен в ~/.ssh/authorized_keys на сервере и что он имеет права 644.

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

  1. Подключение с ключом: выполните ssh remote-host и убедитесь, что вы вошли без запроса пароля.
  2. Работа команд: выполните простую команду, например whoami или ls -la, чтобы убедиться, что удалённая оболочка работает.
  3. Статус службы: проверьте systemctl status ssh, чтобы убедиться, что служба работает и будет перезапускаться после перезагрузки.

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

  • Permission denied (publickey): проверьте права доступа и содержание файла authorized_keys. Убедитесь, что ключ именно тот, что вы ожидаете.
  • Connection timed out: проверьте сетевое соединение, заблокирован ли порт 22 в брандмауэре, и правильность IP-адреса.
  • No such file or directory (Key not found): укажите правильный путь к ключу в конфигурации или используйте ssh -i ~/.ssh/id_ed25519 user@host.
  • Address already in use: возможно, на сервере уже запущен другой SSH-демон (например, sshd на другом порту). Проверьте ss -tulpn | grep :22 и настройте Port в /etc/ssh/sshd_config при необходимости.

Следуя этим инструкциям, вы сможете надёжно настроить SSH-соединение, использовать ключевую аутентификацию и быстро решить типичные проблемы. Удачного администрирования!

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

Что делать, если SSH-сервис не запускается после установки?
Как сгенерировать SSH-ключ и добавить его на удалённый сервер?
Почему не удаётся подключиться по SSH с использованием ключа?
Как ограничить SSH-доступ только определённым пользователям или IP-адресам?

Полезное

Установить SSH-сервер
Настроить SSH-клиент
Подключиться к удалённому хосту
Использовать SSH-ключ для автоматической аутентификации
Проверить и решить типичные проблемы