SSH доступ по ssh-ключу
LinuPark 🧙♂️
Могут ли подобрать пароль по ssh? Да, могут и это скорее вопрос времени... Лучше не использовать пароль, давай настроим вход по ключу...
Настраиваем ssh доступ по ssh-ключу
Для начала проверяем наличие ssh-сервиса на удаленном сервере
systemctl status ssh # или systemctl status sshd
Если его нет, то устанавливаем и включаем автозапуск
apt install ssh -y systemctl enable ssh # или systemctl enable sshd
После генерируем ssh-ключ на машине с которой будет производиться подключение
ssh-keygen
В процессе генерации можно задать фактор-пароль к ключу, но это не обязательно, можно просто нажать Enter

Копируем публичную часть ключа на удалённую машину, в нашем случае это 192.168.122.128, пользователь user
ssh-copy-id user@192.168.122.128
Пробуем подключиться на удалённую машину без пароля
ssh user@192.168.122.128
Если при подключении не запрашивался пароль, то аутентификация произведена по ключу ssh
После закрываем вход по ssh для пользователя root на удалённой машине
nano /etc/ssh/sshd_config
Меняем параметр #PermitRootLogin prohibit-password на PermitRootLogin no
Отключаем возможность удалённого входа с помощью пароля для всех на удалённой машине
Меняем #PasswordAuthentication yes на PasswordAuthentication no
(Ctrl + o - сохранить, Ctrl + x - выйти)
Проверяем наличие дополнительной конфигурации ssh в /etc/ssh/sshd_config.d/
Если там есть дополнительное файлы и в них содержится настройка PermitRootLogin и PasswordAuthentication, то их нужно удалить или закомментировать (прописать # в начале строки)
Перезагружаем сервис ssh или sshd
systemctl restart ssh # или systemctl restart sshd
Подключаемся с помощью ключа
ssh user@192.168.122.128
Если при подключении не было запроса пароля, то аутентификация прошла успешно с помощью ssh-ключа