Как настроить SSH-подключение в Linux на сервере и клиенте
Если вы ищете, как настроить SSH-подключение в Linux, процесс включает установку сервера openssh-server, правку конфига /etc/ssh/sshd_config и генерацию ключей. Разберём настройку по шагам.
Оглавление
Установка компонентов SSH
Для работы протокола нужны серверная и клиентская части. В дистрибутивах на базе Debian и Ubuntu сервер устанавливается пакетом openssh-server через команду:
sudo apt install openssh-server
Клиентская часть (openssh-client) обычно уже предустановлена в системе. После установки проверьте, что служба запущена:
systemctl status sshd
Базовая настройка сервера
Основной файл конфигурации сервера расположен по пути /etc/ssh/sshd_config. После внесения изменений службу нужно перезапустить командой systemctl restart sshd.
Любые правки в sshd_config требуют обязательного перезапуска сервиса, иначе они не вступят в силу.
Рекомендуемые параметры безопасности:
- Изменение порта. Стандартный порт 22 лучше заменить на нестандартный, чтобы снизить риск автоматических атак.
- Запрет входа под root. Установите параметр
PermitRootLogin no, чтобы исключить прямое подключение под суперпользователем.
Аутентификация по ключам
Использование SSH-ключей безопаснее, чем вход по паролю. На клиентской машине сгенерируйте пару ключей:
ssh-keygen -t ed25519
Также можно использовать алгоритм RSA. Открытый ключ нужно скопировать на сервер и разместить в файле ~/.ssh/authorized_keys того пользователя, под которым будет выполнен вход.
После успешной проверки ключевой аутентификации рекомендуется отключить вход по паролю. Для этого в файле sshd_config установите параметр:
PasswordAuthentication no
Подключение и клиентская конфигурация
Для подключения к серверу используется команда:
ssh username@ip-address -p port
Здесь указываются имя пользователя, IP-адрес сервера и порт.
Для упрощения частых подключений используйте клиентский конфигурационный файл ~/.ssh/config. В нём можно прописать алиасы хостов, пользователей и пути к приватным ключам.
Не забудьте разрешить выбранный SSH-порт в брандмауэре (например, UFW или iptables). Если порт закрыт, подключение будет заблокировано.
Частые ошибки
- Служба не запущена. После установки пакета
openssh-serverне всегда происходит автоматический старт. Проверяйте статус черезsystemctl status sshdи при необходимости запускайте вручную. - Забытый перезапуск. Изменения в
/etc/ssh/sshd_configне применяются, пока сервис не перезапущен командойsystemctl restart sshd. - Блокировка брандмауэром. Если SSH-порт не разрешён в UFW или iptables, сервер не примет входящее соединение.
- Неверное расположение ключа. Открытый ключ должен находиться строго в файле
~/.ssh/authorized_keysцелевого пользователя на сервере.
FAQ
Чем отличается SSH-сервер от SSH-клиента?
Сервер принимает входящие подключения, а клиент их инициирует. В Linux сервер обеспечивается пакетом openssh-server, а клиент — пакетом openssh-client, который чаще всего уже предустановлен.
Какой алгоритм выбрать при генерации ключей?
Согласно рекомендациям, предпочтительным является алгоритм ed25519 (команда ssh-keygen -t ed25519). Также поддерживается генерация по алгоритму RSA.
Можно ли подключаться без пароля?
Да, для этого нужно настроить аутентификацию по ключам. После размещения открытого ключа в ~/.ssh/authorized_keys на сервере и отключения параметра PasswordAuthentication в конфигу сервера вход по паролю будет запрещён, и система станет требовать только приватный ключ.