Безопасность · 3 min read · Nov 14, 2025

Лучшие практики безопасности OpenSSH

SSH (Secure Shell) — это криптографический сетевой протокол для безопасного инициирования текстовых сеансов оболочки на удаленных машинах.

OpenSSH — это стандартный клиент и сервер SSH, используемые большинством дистрибутивов Linux. Это инструмент подключения, на который большинство администраторов полагаются для работы на своих серверах Linux и *BSD. OpenSSH шифрует весь трафик (включая пароли), чтобы эффективно исключить перехват, захват соединения и другие атаки. Иными словами, “OpenSSH гарантирует, что соединение с вашим сервером безопасно”. См. статью в Википедии для подробного экскурса по SSH.

Этот учебник охватывает лучшие практики для безопасной настройки вашего SSH-сервера.

Безопасность OpenSSH

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

  1. Используйте надежный пароль.
  2. Измените порт по умолчанию SSH.
  3. Всегда используйте версию протокола 2.
  4. Отключите вход под root.
  5. Ограничьте доступ пользователей.
  6. Используйте аутентификацию на основе ключей.

Используйте надежный пароль

Пароль — это слово или строка символов, используемая для аутентификации пользователя, чтобы подтвердить личность или одобрение доступа к ресурсу. Держите его в секрете от тех, кто не имеет права доступа к серверу. Используйте сложный и длинный пароль, он должен быть легким для запоминания и уникальным для вас, но не легким для угадывания другими. Не используйте admin123 или admin и т. д., которые легко угадать, и не используйте дни рождения, имена вашей жены и т. д. Хороший пароль также должен содержать специальные символы, такие как ‘.!;/‘ (не только символы a-c и 0-9). Используйте заглавные и строчные буквы в пароле.

Измените порт по умолчанию SSH

Порт по умолчанию для службы SSH — 22, вы должны изменить его, чтобы сделать менее очевидным, что ваш сервер работает с службой SSH. Файл конфигурации SSH находится в каталоге /etc/sshd/, вам нужно отредактировать файл конфигурации /etc/ssh/sshd_config.

nano /etc/ssh/sshd_config

Найдите строку “Port”:

Port 22

и измените ее на ваш любимый номер порта, например: 1337

Port 1337

Порт SSH по умолчанию

Пожалуйста, выберите порт, который еще не используется на вашем сервере. Вы можете получить список портов, которые в настоящее время используются, с помощью команды:

netstat -ntap

Эта команда выдает довольно длинный список, показывающий все открытые порты и соединения. Если вы просто хотите проверить, доступен ли ваш желаемый порт, используйте вместо этого эту команду:

netstat -ntap | grep 4422

В этом примере я проверю, свободен ли порт 4422. Если команда не возвращает результат, значит, порт доступен и может быть использован для SSH.

Всегда используйте протокол 2

SSH имеет две версии протокола: старый протокол 1, который небезопасен, и новый протокол 2. Поэтому всегда используйте протокол 2 для вашего SSH-сервера, он более безопасен, чем протокол 1. Дополнительная информация здесь.

Протокол 2 SSH

Отключите вход под root

Вы должны отключить прямой вход для пользователя root, потому что существует множество атак методом грубой силы на имя суперпользователя root. ВАЖНО: протестируйте вход SSH с вашим альтернативным пользователем, не являющимся root, которого вы планируете использовать для входа SSH, прежде чем отключить учетную запись root.

PermitRootLogin no

Отключить вход под root

После того как вы установите “PermitRootLogin” в “no”, вы больше не сможете войти с учетной записью root, даже если вы используете правильный пароль для пользователя root.

Ограничьте пользователей

Вы должны добавить нового пользователя для входа на ваш сервер. Предположим, что вы создали пользователей ruiko и mikoto для входа на ваш сервер, тогда вы можете добавить новую строку:

AllowUsers ruiko mikoto

Ограничить пользователя

в /etc/ssh/sshd_config, чтобы ограничить доступ SSH только для этих пользователей.

Используйте аутентификацию на основе ключей

Я рекомендую вам использовать этот вариант, потому что его очень легко настроить и он более безопасен, чем аутентификация на основе пароля. Сначала вам нужно создать пару открытого и закрытого ключей на вашем локальном (настольном) компьютере, я использую Linux для этого.

Вы можете создать пару открытого/закрытого ключей с помощью этой команды:

ssh-keygen -t rsa -b 4096

Это создаст 2 файла, расположенных в каталоге ~/.ssh/: id_rsa как закрытый ключ и id_rsa.pub как открытый ключ. Если будет предложено ввести пароль, вы можете оставить его пустым или ввести свой пароль. Рекомендуется использовать пароль для защиты вашего ключа.

Сгенерировать ключ SSH

Теперь загрузите открытый ключ id_rsa.pub на ваш сервер с помощью команды ssh-copy-id.

ssh-copy-id -i ~/.ssh/id_rsa.pub user@serverip

Это автоматически запишет ваш открытый ключ в файл ~/.ssh/authorized_keys/ на вашем сервере.

Теперь вернитесь на ваш сервер и снова отредактируйте файл конфигурации ssh.

nano /etc/ssh/sshd_config

Уберите комментарий с этой строки:

AuthorizedKeysFile     %h/.ssh/authorized_keys

Добавить открытый ключ

и, наконец, перезапустите ваш SSH-сервер:

systemctl restart sshd

Теперь попробуйте подключиться к вашему серверу:

ssh -p '4422' 'user@serverIP'

Заключение

OpenSSH является стандартом для безопасного удаленного доступа к *Unix-подобным серверам, заменяя нешифрованный протокол telnet. SSH (и его подпротокол передачи файлов SCP) гарантирует, что соединение с вашего локального компьютера на сервер зашифровано и безопасно. Базовая установка OpenSSH уже довольно безопасна, но мы можем улучшить ее, следуя приведенному выше руководству.

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.