Как включить SSH в Debian
Поставьте сервер SSH — в Debian он сразу запустится и будет включён в автозагрузку:
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):
ssh ivan@192.168.1.20Первый раз SSH спросит, доверять ли ключу сервера, — ответьте yes, затем введите пароль пользователя ivan на сервере.
Если не подключается
Connection refused— на сервере не запущен SSH. Проверьтеsystemctl status ssh; запуск —sudo systemctl enable --now ssh.Connection timed out— до сервера не доходит: неверный адрес, сервер выключен или порт закрыт брандмауэром. В самом Debian правил брандмауэра по умолчанию нет; если вы включали nftables или ufw, проверьте, что порт 22 открыт (урок SSH и брандмауэр).Permission deniedпод root при верном пароле — так задумано, ниже подробно.ssh: command not foundна компьютере, с которого подключаетесь, — нет клиента SSH; в Debian и Ubuntu он ставится командойsudo apt install openssh-client.sshd: command not foundна сервере у обычного пользователя — программа есть, но лежит в/usr/sbin; запускайтеsudo sshd -t.
Вход под root
По умолчанию сервер SSH пускает root только по ключу (PermitRootLogin prohibit-password), даже если пароль root задан при установке. Лучший путь — войти своим пользователем и стать root на сервере:
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):
sudo nano /etc/ssh/sshd_config.d/10-root.confС одной строкой:
PermitRootLogin yesПроверьте и перезапустите сервер, затем посмотрите, что действует на самом деле:
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. Перед перезапуском откройте новый порт в брандмауэре, если он включён.