SSH не пускает по ключу
Сломай-почини · Среднее · 20 мин · 150 баллов
SSH не пускает по ключу
Для пользователя deploy настроен вход по SSH-ключу: публичный ключ уже лежит в его
~/.ssh/authorized_keys. Но при подключении сервер игнорирует ключ и просит пароль
(а парольный вход запрещён) — войти не получается.
Задача
Сделай так, чтобы:
- пользователь
deployпускался на сервер по ключу, без пароля; - права на
~/.sshиauthorized_keysбыли корректными — sshd придирчив к ним; - конфигурация
sshdразрешала вход по ключу и была применена (служба перезагружена).
Подсказки по подходу
- sshd отказывает в ключе при слишком открытых правах: каталог
~/.sshдолжен быть700, файлauthorized_keys—600, оба — во владении самого пользователя. - Конфиг
/etc/ssh/sshd_config: смотриPubkeyAuthentication,AuthorizedKeysFileи возможныеMatch-блоки. - Лучший диагност — лог сервера при попытке входа:
journalctl -u ssh(илиsshd). - После правки конфига нужен
systemctl reload ssh(синтаксис проверь черезsshd -t).
Всё нужное уже установлено. Интернет на машине отсутствует — и не понадобится.
Подсказки
Подсказка 1
Загляни в лог сервера во время попытки входа: sudo journalctl -u ssh -n 30. Сообщение
вроде «Authentication refused: bad ownership or modes» прямо укажет на права.
Подсказка 2
Проверь права: ls -ld ~deploy/.ssh (нужно 700) и ls -l ~deploy/.ssh/authorized_keys
(нужно 600), владелец — deploy. Затем конфиг: sudo sshd -T | grep -i pubkey —
включён ли вход по ключу.
Подсказка 3
Почини права: sudo chmod 700 ~deploy/.ssh; sudo chmod 600 ~deploy/.ssh/authorized_keys;
sudo chown -R deploy:deploy ~deploy/.ssh. Если в sshd_config стоит
PubkeyAuthentication no — поставь yes, проверь sudo sshd -t и
sudo systemctl reload ssh.
Поднимет вашу личную эфемерную Linux-ВМ для задания — обычно пара секунд. После работы её можно остановить.