Безопасность · 3 min read · Nov 14, 2025
Лучшие практики безопасности OpenSSH
SSH (Secure Shell) — это криптографический сетевой протокол для безопасного инициирования текстовых сеансов оболочки на удаленных машинах.
OpenSSH — это стандартный клиент и сервер SSH, используемые большинством дистрибутивов Linux. Это инструмент подключения, на который большинство администраторов полагаются для работы на своих серверах Linux и *BSD. OpenSSH шифрует весь трафик (включая пароли), чтобы эффективно исключить перехват, захват соединения и другие атаки. Иными словами, “OpenSSH гарантирует, что соединение с вашим сервером безопасно”. См. статью в Википедии для подробного экскурса по SSH.
Этот учебник охватывает лучшие практики для безопасной настройки вашего SSH-сервера.
Безопасность OpenSSH
Это шесть самых важных задач для обеспечения безопасности вашей настройки SSH-сервера:
- Используйте надежный пароль.
- Измените порт по умолчанию SSH.
- Всегда используйте версию протокола 2.
- Отключите вход под root.
- Ограничьте доступ пользователей.
- Используйте аутентификацию на основе ключей.
Используйте надежный пароль
Пароль — это слово или строка символов, используемая для аутентификации пользователя, чтобы подтвердить личность или одобрение доступа к ресурсу. Держите его в секрете от тех, кто не имеет права доступа к серверу. Используйте сложный и длинный пароль, он должен быть легким для запоминания и уникальным для вас, но не легким для угадывания другими. Не используйте 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
Пожалуйста, выберите порт, который еще не используется на вашем сервере. Вы можете получить список портов, которые в настоящее время используются, с помощью команды:
netstat -ntapЭта команда выдает довольно длинный список, показывающий все открытые порты и соединения. Если вы просто хотите проверить, доступен ли ваш желаемый порт, используйте вместо этого эту команду:
netstat -ntap | grep 4422В этом примере я проверю, свободен ли порт 4422. Если команда не возвращает результат, значит, порт доступен и может быть использован для SSH.
Всегда используйте протокол 2
SSH имеет две версии протокола: старый протокол 1, который небезопасен, и новый протокол 2. Поэтому всегда используйте протокол 2 для вашего SSH-сервера, он более безопасен, чем протокол 1. Дополнительная информация здесь.

Отключите вход под root
Вы должны отключить прямой вход для пользователя root, потому что существует множество атак методом грубой силы на имя суперпользователя root. ВАЖНО: протестируйте вход SSH с вашим альтернативным пользователем, не являющимся root, которого вы планируете использовать для входа SSH, прежде чем отключить учетную запись root.
PermitRootLogin no
После того как вы установите “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 как открытый ключ. Если будет предложено ввести пароль, вы можете оставить его пустым или ввести свой пароль. Рекомендуется использовать пароль для защиты вашего ключа.

Теперь загрузите открытый ключ 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 уже довольно безопасна, но мы можем улучшить ее, следуя приведенному выше руководству.
Get new posts in your inbox
No spam. Unsubscribe anytime.