Настройка SSH
Инструкция по правильной настройке SSH на сервере.
После любых изменений необходимо перезагрузить сервис SSHD. Вне зависимости от примененных настроек скорее всего ваша текущая SSH-сессия останется активной.
Подключение по SSH-ключам
Генерация ключей
Для этого необходимо сгенерировать пару ключей (публичный и приватный). Публичный хранится на сервере и там где он прописан вы сможете подключиться со своим приватным ключем.
Сгенерировать новую пару можно командой ssh-keygen
, где вас запросят путь, куда выхотите сохранить ключ и пароль от ключа (можно оставлять пустым, но нежелательно).

Для большей безопасности можно сгенерировать ключ RSA 4096 следующей командой:
ssh-keygen -t rsa -b 4096
На Windows процесс не сильно сложнее, но делается через приложение PuTTY или Termius.
Установка ключей
После генерации публичный ключ необходимо загрузить на сервер, это можно сделать 4-ю способами:
Через панель управления сервером -> читать.
Скопировать содержимое вашего файла с расширением .pub (в нашем случае test.pub) и вставить в
~/.ssh/authorized_keys
на сервере.Командой
ssh-copy-id -i test.pub root@<IP>
Программой PuTTY, Termius или другим менеджером SSH.
Настройка конфигурации
Конфигурационный файл SSH -> /etc/ssh/sshd_config
Авторизация только по ключу
После загрузки ключа доступ к серверу все еще можно получить посредством пароля, это можно исправить следующими параметрами.
PubkeyAuthentication yes
PasswordAuthentication no
Запрет входа для root
Довольно частая практика – создавать пользователя и ограничить доступ к серверу для суперпользователя (root).
PermitRootLogin no
Изменение порта
По умолчанию используется порт 22
, но для большей уверенности можно поменять на условный 61234
. Если вы используете fail2ban
(как настроить защиту?), то вам необходимо будет соответсвующим образом настроить и его, сменив порт с ssh
на указанный.
Port 61234
Применение изменений
systemctl restart sshd
Возможные ошибки при подключении
Host key verification failed.

Немного теории, каждый раз когда вы при подключении вводите yes
в терминал – вы сохраняете публичный ключ сервера (он есть всегда, даже если аутентификация по паролю) в ~/.ssh/known_hosts
.
Это необходимо для предотвращения атак типа MITM (Man-In-The-Middle).
Если ключ сервера не совпадает с тем, что у вас сохранен для этого же сервера, то вы получаете соответствующую ошибку.
Решение проблемы – сбросить сохраненные ключи сервера следующей командой:
ssh-keygen -R <IP_АДРЕС>
Permission denied (publickey).
Данная ошибка означает то, что на сервере выключена аутентификация по паролю. Нужно подключиться с вашим ключoм, отредактировать конфиг и перезагрузить ssh.service, либо написать в поддержку – мы всегда готовы помочь.
Last updated
Was this helpful?