Избранное

Использование SSH-ключей вместо пароля

Опубликовано 21/08/2026 Обновлено 06/10/2026 Просмотров: 70
VPS Linux SSH Clés SSH

Пароль можно угадать, перехватить и использовать повторно, и он может оказаться в утечке данных. SSH-ключ угадать невозможно: секретная часть никогда не покидает ваш компьютер, а сервер знает только публичную часть. Это изменение конфигурации даёт наибольший выигрыш в безопасности при наименьших усилиях.

Как сгенерировать пару SSH-ключей?

Одной командой, ssh-keygen -t ed25519, которая создаёт закрытый и публичный ключи.

На своём компьютере — не на сервере — откройте терминал (в Windows подойдёт PowerShell):

ssh-keygen -t ed25519 -C "martin@personal-laptop"
  • Примите предложенный путь, ~/.ssh/id_ed25519.
  • Введите парольную фразу. Она шифрует закрытый ключ: если ваш компьютер украдут, ключом нельзя будет воспользоваться.

Будут созданы два файла:

  • id_ed25519 — закрытый ключ. Его никуда не копируют, никаким способом не пересылают и никогда не вставляют в обращение.
  • id_ed25519.pub — публичный ключ. Именно его вы размещаете на серверах.

Выведите публичный ключ, чтобы скопировать его:

cat ~/.ssh/id_ed25519.pub

Он занимает одну строку и начинается с ssh-ed25519 AAAA….

Как добавить публичный ключ на VPS?

Двумя способами: вставить его в карточку SSH-ключи на вкладке Доступ и безопасность или отправить из терминала командой ssh-copy-id.

Через личный кабинет — это самый простой способ:

  1. Откройте Мои услуги, затем ваш VPS.
  2. Перейдите на вкладку Доступ и безопасность.
  3. В карточке SSH-ключи вставьте публичный ключ. Поле принимает по одному ключу на строку в форматах ssh-rsa, ssh-ed25519 и ecdsa.
  4. Нажмите Сохранить ключи.

Сообщение «SSH-ключи успешно обновлены.» подтверждает сохранение, а на вкладке История остаётся запись об этом. Эти ключи сохраняются и автоматически внедряются повторно при каждой переустановке VPS: повторять процедуру не нужно.

Из терминала также работает классический способ:

ssh-copy-id root@IP_ADDRESS

Затем проверьте, что вход по ключу работает, не закрывая текущий сеанс:

ssh root@IP_ADDRESS

Если сервер больше не запрашивает пароль учётной записи — в крайнем случае только парольную фразу ключа, — всё настроено.

Как отключить вход по SSH с паролем?

Установите PasswordAuthentication no в /etc/ssh/sshd_config и перезагрузите конфигурацию службы SSH — но только после того, как убедитесь, что вход по ключу работает.

Переходите к этому шагу только после проверки предыдущего пункта и не закрывайте текущий сеанс SSH на протяжении всей процедуры.

Отредактируйте /etc/ssh/sshd_config:

PubkeyAuthentication yes
PasswordAuthentication no
PermitRootLogin prohibit-password

Перед перезагрузкой конфигурации службы проверьте синтаксис — эта команда убережёт вас от SSH-сервера, который отказывается перезапускаться:

sshd -t
systemctl reload ssh      # Debian, Ubuntu
systemctl reload sshd     # AlmaLinux, Rocky, CentOS Stream

Теперь откройте второй сеанс в другом окне. Если подключение удалось, первый сеанс можно спокойно закрыть. Если нет, исправьте файл из оставшегося открытым сеанса.

Как сохранить закрытый ключ и предоставить доступ другому человеку?

Храните резервную копию закрытого ключа там же, где храните пароли, и добавляйте только публичный ключ другого человека, на новой строке.

  • Храните резервную копию закрытого ключа там же, где и резервные копии паролей: потерять его — значит потерять доступ, если только не воспользоваться консолью.
  • Чтобы предоставить доступ второму человеку, добавьте его публичный ключ на новой строке. Никогда не используйте один закрытый ключ на несколько человек: вы потеряете возможность отслеживать действия и не сможете отозвать доступ у кого-то одного.
  • Чтобы отозвать доступ, удалите соответствующую строку и снова сохраните.

Что делать, если SSH-ключ утерян?

Вы не останетесь без доступа. Откройте аварийную консоль в личном кабинете: она показывает экран машины без использования SSH. Войдите с паролем администратора, временно верните PasswordAuthentication yes, добавьте новый ключ, а затем снова отключите вход по паролю.

Помогла ли вам эта статья?