SSH-доступ без пароля — это самый безопасный и удобный способ входа на сервер. Ниже — простой порядок действий, который помогает избежать ошибки «Permission denied (publickey)» и спокойно входить под новым пользователем.
1. Создание пользователя на сервере
Под root выполните:
adduser myuser
usermod -aG sudo myuser
Теперь у вас есть обычный пользователь с правами sudo — для работы, а не для постоянного использования root.
2. Генерация SSH-ключей на своём ПК
На локальной машине (Linux/Mac/WSL):
ssh-keygen -t ed25519 -C "myuser-key"
Нажимаем Enter несколько раз — ключи создадутся по пути:
~/.ssh/id_ed25519
~/.ssh/id_ed25519.pub
3. Добавление ключа на сервер
Под root создаём структуру для ключей пользователя:
mkdir -p /home/myuser/.ssh
nano /home/myuser/.ssh/authorized_keys
Вставляем содержимое файла id_ed25519.pub (в одну строку),
сохраняем и закрываем.
4. Правильные права доступа
Очень важно — иначе SSH точно не пустит:
chown -R myuser:myuser /home/myuser/.ssh
chmod 700 /home/myuser/.ssh
chmod 600 /home/myuser/.ssh/authorized_keys
5. Пробуем войти
С локального компьютера:
ssh myuser@IP_сервера
Если всё сделано правильно — вход будет без пароля.
Типичные ошибки, из-за которых не пускает
| Проблема | Почему не работает |
|---|---|
| Ключ вставлен с переносом строки | SSH не принимает файл |
| Неверные права (должны быть 700/600) | Доступ блокируется |
Неправильный владелец .ssh | Файлы принадлежат root, а не пользователю |
| Забыли отключить вход паролем | Сервер требует ключ, которого нет |
6. (Важно) Дополнительная защита
После успешного входа можно закрыть вход по паролю:
sudo nano /etc/ssh/sshd_config
Изменить:
PasswordAuthentication no
PermitRootLogin no
Перезапустить SSH:
sudo systemctl restart ssh
Итог
🔐 SSH на ключах — это:
- защита от перебора паролей
- защита от взлома
- удобный вход без лишних вводов
Если всё сделать по шагам — ошибки исчезнут.