раздел 02

Доступ по SSH-ключу

Более безопасный способ входа. Вместо пароля используется пара ключей. Один раз настроил - и дальше заходишь без всякого пароля, одной командой.

Что такое пара ключей

При настройке создаются сразу два связанных файла - это и есть пара ключей:

Приватный ключ
Секрет. Хранится только у тебя на компьютере. Его никому не показывают и никуда не выкладывают.
Публичный ключ
Не секрет. Его кладут на сервер. По нему сервер узнаёт твой приватный ключ при входе.

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

Про «два ключа» - чтобы не путаться

«Два ключа» - это и есть одна пара: приватный плюс публичный, они всегда идут вместе и создаются за один раз. Это не два отдельных пароля.

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

Как настроить за три шага

1
Создать пару ключей
Один раз на своём компьютере. Создаст приватный и публичный ключ.
2
Скопировать публичный ключ на сервер
Чтобы сервер знал, кого пускать.
3
Зайти без пароля
Обычной командой ssh - пароль больше не спросят.

Шаг 1. Создать пару ключей

В терминале на своём компьютере:

ssh-keygen -t ed25519

ed25519 - современный тип ключа. Команда спросит, куда сохранить (можно просто нажать Enter - возьмётся путь по умолчанию ~/.ssh/) и предложит задать пароль на сам ключ (можно оставить пустым, нажав Enter). В итоге появятся два файла: приватный id_ed25519 и публичный id_ed25519.pub.

Шаг 2. Скопировать публичный ключ на сервер

ssh-copy-id user@IP

Команда попросит пароль от сервера (в последний раз) и сама положит твой публичный ключ куда нужно. Вместо user@IP подставь своего пользователя и адрес сервера.

Шаг 3. Зайти без пароля

ssh user@IP

Теперь сервер узнаёт тебя по ключу и пускает без пароля.

Почему это безопаснее

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