Ключи SSH вместо пароля: почему и как

Пароль root подбирают боты круглосуточно. Ключи решают это за десять минут настройки.

Все материалыОпубликовано
безопасностьssh

Свежий сервер с открытым 22-м портом начинают перебирать в течение часа. Это не про вас лично — это фоновый шум интернета, и единственный вопрос в том, насколько удачным окажется ваш пароль.

Почему ключ надёжнее

Пароль — это то, что можно угадать. Ключ длиной 256 бит угадать нельзя: перебор занял бы время, несопоставимое с возрастом вселенной. Плюс приватная часть никогда не покидает вашу машину, а значит её нечего перехватить по дороге.

Настройка

Создайте пару на своей машине, не на сервере:

ssh-keygen -t ed25519 -C "рабочий ноутбук"

ed25519 короче и быстрее RSA при той же стойкости. Дальше скопируйте публичную часть:

ssh-copy-id root@ваш-ip

Закройте вход по паролю

Пока пароль работает, ключ ничего не защищает — перебор просто пойдёт мимо. В /etc/ssh/sshd_config:

PasswordAuthentication no
PermitRootLogin prohibit-password

И перезапустите: systemctl restart sshd.

Проверьте вход в новом окне терминала, не закрывая текущее. Если что-то сломано, у вас останется рабочая сессия, чтобы откатить. Иначе останется только режим восстановления.

Если ключ потерян

Загрузитесь в rescue из панели, смонтируйте диск и допишите новый ключ в ~/.ssh/authorized_keys. Данные при этом не страдают — rescue поднимается отдельной системой в памяти.