На прохождение Cyber Shadow я потратил 20 часов и сдох 727 раз. Что сказать, моя жопа давно так не горела, со времен Ninja Gaiden на Денди. Но своеобразное удовольствие я всё же получил.

Ладно, сегодня продолжаем серию постов #linuxfactory

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

Но это еще не всё, сервер не готов запускать тебя по ключам. Сейчас это исправим.

Пиздуем на сервер под рутом, на тот самый куда ты закинул публичную часть ключа и открываем на редактирование файл /etc/ssh/sshd_config.

Активируем эти строчки:

PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

Потом делаем так:

ChallengeResponseAuthentication no
PasswordAuthentication no
PermitEmptyPasswords no
PermitRootLogin no
UsePAM no

Отключаем пароли, запрещаем вход под рутом, ну и так по мелочи. Мелочи расписал в комментах.

Тут есть нюанс, при PermitRootLogin no ты иногда все равно сможешь зайти под рутом. Тут все дело в невинном файле который порой пихают из коробки.

/etc/ssh/sshd_config.d/50-cloud-init.conf

Этот файл содержит реврайт, в нем будет PermitRootLogin yes.

Так что, если ты отключил это в основном конфиге, проверь, а нет ли где-то еще реврайтов. На эти грабли очень часто наступают и тратят пол дня на дебаг.

После того как ты сделал все изменения, нужно выполнить:

sshd -t
systemctl reload sshd

Если первая команда отработала без ошибок, то запускаем reload.

Важно!

Роман Шубин
Роман Шубин
CEO & CTO, Главред в «Цифровой улей»
Задать вопрос
Терминал в котором ты всё это настраиваешь — закрывать не стоит, сессия будет жить даже если накосячил.

Сначала открой второй терминал и проверь что ты можешь снова войти на сервер по ключам или как минимум по паролю если сервер его запросил.

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

В некоторых современных дистрибутивах, перезагрузка sshd поставлена на поток, ты меняешь конфиг и если с ним все ок, конфиг автоматически перечитывается службой. Носи это у себя в голове.

Ну и еще про конфиги ssh, на сервере есть пару похожих конфигов, их часто путают и делают хуйню.

/etc/ssh/ssh_config
/etc/ssh/sshd_config

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

А второй соответственно это серверные настройки. Твоя локальная машина это клиент, подключается к серверу, сервер берет настройки из /etc/ssh/sshd_config.

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

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

Увидимся, это еще далеко не всё.