Глиф Учебники

Как включить SSH в Debian

Справочник · Debian · 3 минуты чтения

Поставьте сервер SSH — в Debian он сразу запустится и будет включён в автозагрузку:

Bash
sudo apt update
sudo apt install openssh-server
systemctl status ssh

В ответе status должно быть active (running). Если sudo не настроен, выполните те же команды после su - без sudo. Адрес сервера для подключения покажет ip -br a.

Подключение с другого компьютера (Linux, macOS, PowerShell в Windows 10/11):

Bash
ssh ivan@192.168.1.20

Первый раз SSH спросит, доверять ли ключу сервера, — ответьте yes, затем введите пароль пользователя ivan на сервере.

Если не подключается

Вход под root

По умолчанию сервер SSH пускает root только по ключу (PermitRootLogin prohibit-password), даже если пароль root задан при установке. Лучший путь — войти своим пользователем и стать root на сервере:

Bash
ssh ivan@192.168.1.20
su -

Если вход именно под root нужен (например, программе резервного копирования), положите открытый ключ в /root/.ssh/authorized_keys — настройку менять не придётся. Как создать ключ — в уроке SSH и брандмауэр.

Разрешить root вход по паролю можно своим файлом настроек в папке /etc/ssh/sshd_config.d/ (почему там — в разделе Где настройки). Файла ещё нет — nano откроет пустой и создаст его при сохранении (Ctrl+O, Enter, выход — Ctrl+X):

Bash
sudo nano /etc/ssh/sshd_config.d/10-root.conf

С одной строкой:

Настройки
PermitRootLogin yes

Проверьте и перезапустите сервер, затем посмотрите, что действует на самом деле:

Bash
sudo sshd -t
sudo systemctl restart ssh
sudo sshd -T | grep -i permitrootlogin

Серверы с открытым портом 22 круглосуточно перебирают боты, и первым делом — пароль root. Вход root по паролю включайте только в своей сети, с длинным паролем и ненадолго. Вернуть как было — удалить файл /etc/ssh/sshd_config.d/10-root.conf и перезапустить ssh.

Где настройки

Основной файл — /etc/ssh/sshd_config, но свои изменения удобнее класть отдельными файлами в /etc/ssh/sshd_config.d/ (с окончанием .conf): при обновлении пакета их не придётся сравнивать с новой версией основного файла. Папку подключает строка Include /etc/ssh/sshd_config.d/*.conf в начале основного файла — в Debian 11 и новее она есть. Проверьте:

Терминал
$ grep -n Include /etc/ssh/sshd_config

Строка естьсвои настройки кладите в папку

Файлом с окончанием .conf, например 10-root.conf; файла ещё нет — nano создаст его при сохранении. В настройках SSH действует первое найденное значение, а файлы из sshd_config.d читаются раньше основных строк, поэтому строка в своём файле главнее.

Строки нетправьте основной файл

Debian 10 и старше или основной файл остался от прежней версии системы: файлы папки не читаются. Нужную строку правят в самом /etc/ssh/sshd_config — например, #PermitRootLogin prohibit-password меняют на PermitRootLogin yes (строка с # в начале — комментарий, сервер её не читает).

После любой правки — sudo sshd -t (молчит, если ошибок нет) и sudo systemctl restart ssh.

Порт сервера меняют строкой Port 2222 в своём файле; подключение тогда — ssh -p 2222 ivan@192.168.1.20. Перед перезапуском откройте новый порт в брандмауэре, если он включён.