Настройка 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?