Настройки сервера лежат в sshd_config, но в файле бывает не то, что действует. Сервер сам печатает свои итоговые значения.
| Строка | Что решает |
|---|---|
PasswordAuthentication |
вход по паролю |
KbdInteractiveAuthentication |
вход с вопросами сервера — обычно тоже о пароле |
PubkeyAuthentication |
вход по ключу |
PermitRootLogin |
можно ли входить root |
AuthenticationMethods publickey |
из всех способов остаётся один — ключ |
sudo sshd -t -f файл проверяет файл на ошибки, sudo sshd -T -f файл печатает все значения, которые сервер возьмёт.
Какое значение действует
В /opt/ssh-lab/sshd_config учебного сервера вход по паролю вроде бы выключили. Найди в файле строки о паролях, затем спроси сам sshd, какие значения у него действуют.
Сначала предположи
В файле две строки: выше PasswordAuthentication yes, ниже PasswordAuthentication no. Какое значение действует?
Теперь начни упражнение, выполни команду и сверь прогноз с выводом.
Если строка повторяется, sshd берёт первую. Поэтому правят строку, которая уже есть: новая строка в конце файла ничего не изменит.
Файл настроек сервер читает при запуске — в отличие от authorized_keys, который он читает при каждом входе. Порядок правки: изменить файл, проверить sshd -t, перезапустить сервер и войти новым подключением.
Новый вход нужен и после правки: уже открытая сессия прошла проверку раньше и о новых настройках ничего не говорит.
Ты выключил пароли в sshd_config и перезапустил сервер. Открытая раньше сессия deploy работает. Что это доказывает?
-
Ошибки в файле ищет
sudo sshd -t -f файл. Открытая сессия файл не читает. -
Действующее значение печатает
sudo sshd -T -f файл: строкаpasswordauthentication. -
Эта сессия прошла проверку до правки. Как сервер пускает теперь, покажет новый вход:
ssh training id -un.
Открытая сессия прошла проверку входа раньше, и правка её не касается. Правку подтверждают тремя командами: sshd -t, sshd -T и новый вход.