В общем вот Вам мой мини мануал:
Настройка порта SSH
sudo nano /etc/ssh/sshd_config
// Заменить дефолтный (22) порт на кастомный:
Port 112
// Сохранить изменения в файле конфигурации и закрыть его. Не закрывая текущий терминал, нужно перезапустить службу ssh:
sudo service ssh restart
// С помощью нового терминала нужно убедиться в возможности подключения с использованием нового порта и в отсутствии возможности подключения по дефолтному (22) порту. Только после проверки возможности подключения можно закрывать начальный терминал.
Отключение возможности авторизации под root пользователем
sudo nano /etc/ssh/sshd_config
// Для отключения возможности авторизации под root пользователем, внести следующие изменения:
PermitRootLogin no
// Не закрывая текущий терминал, нужно перезапустить службу ssh:
sudo service ssh restart
// С помощью нового терминала нужно убедиться в возможности авторизации под обычным пользователем и в отсутствии возможности авторизации под root пользователем. Только после проверки возможности авторизации можно закрывать начальный терминал.
Добавление SSH ключа пользователя
// Ключи должны быть сгенерированы заранее (например, с помощью «puttygen»)
// Далее необходимо создать в домашнем каталоге пользователя каталог «.ssh»
mkdir ~/.ssh
// И ограничить доступ к нему для остальных пользователей, установив соответствующие права на каталог:
chmod 700 ~/.ssh
// Созать файл «authorized_keys», скопировать в него ПУБЛИЧНЫЙ ключ пользователя, после чего файл сохранить и закрыть:
nano ~/.ssh/authorized_keys
// Далее нужно установить на файл с публичным ключом права только на чтение:
chmod 600 ~/.ssh/authorized_keys
// С этого момента для подключения к серверу можно пользоваться ключами ssh, ввод пароля при этом не потребуется.
Отключение возможности авторизации по логину и паролю
sudo nano /etc/ssh/sshd_config
// Для отключения возможности авторизации по логину и паролю нужно внести следующие изменения:
PasswordAuthentication no
PubkeyAuthentication yes
ChallengeResponseAuthentication no
// Не закрывая текущий терминал, нужно перезапустить службу ssh:
sudo systemctl reload sshd
// С помощью нового терминала следует убедиться в возможности авторизации с помощью ключа и в отсутствии возможности авторизации по логину и паролю. Только после проверки авторизации можно закрывать начальный терминал.
В дальнейшем, ssh авторизация возможна только от имени обычного пользователя (не root) и только с помощью ключа. При попытке авторизации под root соединение будет сброшено, при попытке авторизации с помощью логина и пароля соединение будет сброшено.