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

Создать ключ и положить на сервер

1

Сгенерируй ключ

В терминале на своём компьютере:
ssh-keygen -t ed25519 -C "lumi-vps"
На вопрос о пути нажми Enter — ключ ляжет в стандартное место.
Задавай ключу passphrase (пароль на сам ключ) — на вопрос при ssh-keygen введи фразу, а не оставляй пустым. Тогда даже если закрытый файл украдут, без passphrase им не воспользуются. Чтобы не вводить её каждый раз, добавь ключ в ssh-agent: ssh-add ~/.ssh/id_ed25519.
Появятся два файла:
ФайлЧто это
~/.ssh/id_ed25519закрытый ключ — держи у себя, никому не давай
~/.ssh/id_ed25519.pubоткрытый ключ — его кладём на сервер
2

Скопируй открытый ключ на сервер

Самый простой способ — ssh-copy-id:
ssh-copy-id root@IP
Замени IP на адрес сервера из бота. Команда один раз спросит пароль root и сама допишет ключ на сервер.Если ssh-copy-id нет, добавь ключ вручную. Покажи свой открытый ключ:
cat ~/.ssh/id_ed25519.pub
Зайди на сервер по паролю и вставь строку в ~/.ssh/authorized_keys:
ssh root@IP
mkdir -p ~/.ssh && chmod 700 ~/.ssh
echo "СЮДА_СТРОКУ_КЛЮЧА" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

Проверь вход по ключу

Подключись заново:
ssh root@IP
Если зашло без запроса пароля сервера — ключ работает. (Если ты задал passphrase, спросят именно её — это пароль от ключа на твоём компьютере, а не от сервера.)

Отключить вход по паролю

Когда ключ работает, пароль можно выключить совсем — тогда сервер перестанут долбить переборщики.
Сначала убедись, что вход по ключу действительно работает. Если выключить пароль раньше, можно закрыть себе доступ к серверу.
1

Открой настройки SSH на сервере

nano /etc/ssh/sshd_config
2

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

Найди строку PasswordAuthentication и приведи к виду (убери # в начале, если он есть):
PasswordAuthentication no
Сохрани файл: в nano это Ctrl+O, Enter, затем Ctrl+X.
3

Перезапусти SSH

systemctl restart ssh
Текущее соединение не разорвётся. Открой второе окно и проверь, что вход по ключу всё ещё работает, прежде чем закрывать первое.

Куда дальше

Защита сервера

Чек-лист безопасности после первого входа.

Файрвол

Закрой лишние порты, оставь только нужные.