SSH для начинающих: установка, настройка и первые команды
SSH (Secure Shell) — это современный криптографический сетевой протокол. Он обеспечивает безопасное зашифрованное соединение между двумя устройствами в небезопасной сети, например, в интернете.
В статье расскажем, как работает SSH, в чем разница между клиентом и сервером, как установить SSH-софт на свое устройство. А еще поделимся полезными командами и покажем, как создать безопасную конфигурацию сервера.

Основы SSH
Что такое SSH и как он работает
SSH создает зашифрованный туннель связи, благодаря которому информация будет защищена от перехвата и несанкционированного доступа. Протокол поддерживает разные варианты аутентификации: GSSAPI, hast-based, public key/certificates, keybord interactive, password.
В статье будем рассматривать самый безопасный способ аутентификации, по публичным ключам. Про остальные вы можете узнать, если введете команду man ssh — после выполнения откроется страница со справочными материалами.
SSH работает благодаря паре цифровых кодов — открытому и закрытому SSH-ключу:
Закрытый, или приватный SSH-ключ, хранится у вас на устройстве. Этот ключ кроме вас никто не знает.
Открытый, или публичный SSH-ключ — часть, которую вы сообщаете серверу или устройству, с которым надо обменяться данными. Закрытый ключ бесполезен без открытого.
Как работает SSH:
Вы создаете пару SSH-ключей. Приватный оставляете себе, а публичный отправляете на сервер.
При попытке входа сервер смотрит, есть ли в файле .ssh/authorized_keys открытый ключ. Если есть, сервер генерирует случайное число, шифрует его с помощью открытого ключа и отправляет вам.
Вы получаете на устройство сообщение от сервера. Число, которое он зашифровал, расшифровывается закрытым ключом, и результат отправляется обратно на сервер.
Сервер проверяет, совпадает ли результат от пользователя с тем числом, которое было зашифровано. Если все совпадает, аутентификация пройдена, и вы получаете доступ к серверу.
Ключевые компоненты SSH
Безопасное взаимодействие двух устройств обеспечивают две важные составляющие SSH-протокола: клиент и сервер. Расскажем, что это такое и как они взаимодействуют.
SSH-клиент — программа, которая установлена на вашем устройстве. Именно она первой выходит на связь с сервером. Клиент отправляет нужному серверу запрос на подключение, подтверждает вашу личность с помощью SSH-ключей, создает зашифрованный канал, через который передаются данные.
SSH-сервер — программа, которая работает на устройстве или сервере, с которым вы хотите обменяться данными. Сервер принимает запросы от SSH-клиента, запрашивает открытый ключ, открывает защищенное соединение, выполняет команды клиента и возвращает ему результаты.

Установка SSH-клиента
OpenSSH — бесплатный и открытый набор инструментов, который реализует протокол SSH. OpenSSH включает в себя как клиентскую, так и серверную части. Это значит, что одно устройство может одновременно устанавливать безопасное соединение с удаленным сервером и работать как сам сервер, то есть принимать подключения от других устройств.
В этом разделе расскажем, как установить утилиту OpenSSH на Linux и Windows.
Установка OpenSSH на Linux
В Linux обе части OpenSSH — и клиент, и сервер — нужно установить отдельными пакетами. Рассмотрим команды для дистрибутивов Linux, которые используют пакетный менеджер APT: Ubuntu, Debian и Linux Mint. Информацию по установке для других дистрибутивов можно найти в их документации.
Чтобы установить клиент, введите в командной строке:
Чтобы установить OpenSSH-сервер и связанные с ним вспомогательные файлы, выполните следующую команду:

Установка OpenSSH на Windows
OpenSSH-клиент предустановлен в Windows 10 и новее, а вот серверную часть нужно устанавливать отдельно. Здесь расскажем о двух способах, как установить сервер и клиент, если его все же нет на устройстве.
Через интерфейс. Перейдите в Параметры → Приложения → Дополнительные компоненты → Добавить компонент. Найдите в списке OpenSSH Client и нажмите Установить.
Через PowerShell. Запустите PowerShell от имени администратора и выполните команду:

Настройка SSH-сервера
Рассказываем о ключевых настройках, чтобы защитить SSH-сервер и сделать его работу производительнее.
Перед тем, как вносить изменения, советуем:
Открыть вторую сессию SSH на сервере — на случай, если текущая разорвется из-за ошибки в конфигурации.
Не закрывать первоначальную сессию, пока не убедитесь, что новая конфигурация работает верно.
Создать резервную копию основного файла конфигурации SSH-сервера (sshd).
В Windows конфигурационный файл по умолчанию находится в /etc/ssh/sshd_config, и для создания резервной копии нужно выполнить команду:
В Linux скопируйте файл конфигурации и добавьте в команду ниже дату:
Эта команда создаст резервную копию с названием sshd_config_backup_2025-10-20.
Что касается настроек безопасности, они производятся в конфигурационном файле (sshd). Чтобы открыть его, выполните sudo nano /etc/ssh/sshd_config для Linux или notepad C:\ProgramData\ssh\sshd_config для Windows.
Общие настройки SSH-сервера для обеих ОС будут такими:
1. Измените порт со стандартного 22 на нестандартный. Порт 22, который выставляется по умолчанию, — зачастую цель для атак ботов. А еще он относится к well-known портам (порты с 0 до 1023), которые зарезервированы для стандартных системных служб и популярных сетевых протоколов. Используйте любой незанятый номер порта, начиная с 1024, к примеру, 2233:
2. Отключите аутентификацию по паролю и включите аутентификации по ключу. Это одна из самых важных мер безопасности. Она принуждает использовать ключи SSH, которые значительно надежнее паролей.
3. Запретите прямой вход администратора (root).
4. Ограничьте круг пользователей, у которых есть доступ к серверу. Это уменьшает риски атак и взломов, так как войти смогут только пользователи, которые вы укажете.
5. Отключите ненужные функции, которые не используете, например:
6. Установите тайм-аут на сессию:
После выполнения этой команды сервер будет проверять активность SSH-клиента каждые десять минут.
7. Используйте fail2ban для защиты от брутфорса:
8. Защитите ключи и задайте доступы: только себе для приватного ключа и всем для открытого.
9. Регулярно обновляйте SSH командой:
10. Проверьте логи сервера:
11. Сохраните файл и перезагрузите службу SSH, чтобы изменения вступили в силу:

Генерация SSH-ключей
Чтобы создать SSH-ключи, выполните:
Команда, которую нужно ввести для копирования открытого ключа на сервер, зависит от вашей операционной системы.
Для Ubuntu:
Для Windows:

Подключение к серверу через SSH
Перечислим команды, которые понадобятся для подключения к серверу. А еще рассмотрим PuTTY — альтернативный SSH-клиент для Windows, который можно использовать вместо OpenSSH.
Использование командной строки для подключения
Для подключения к серверу через SSH используйте одну из команд:
Использование PuTTY на Windows
Перед тем, как подключиться к серверу через PuTTY, нужно создать пару SSH-ключей и настроить сессию. Вот как это сделать:
Установите PuTTY с официального сайта и запустите PuTTYgen, утилита входит в комплект PuTTY. С ее помощью вы создадите пару SSH-ключей — публичный и приватный.
После генерации ключей настройте подключение в основном клиенте PuTTY. В разделе Session укажите IP-адрес или имя хоста вашего сервера и убедитесь, что установлен не 22 порт. Тип соединения — SSH.
Перейдите в раздел Connection → Data. В поле Auto-login username введите имя пользователя для подключения к серверу, например, sysadmin.
В разделе Connection → SSH → Auth нажмите Browse и выберите сохраненный файл закрытого ключа — он хранится в формате .ppk.
Опциональный шаг — сохранение сессии. Вернитесь в Session, введите название в Saved Sessions и нажмите Save, чтобы использовать настройки сессии в будущем.
После этих шагов можно подключаться к серверу:
Нажмите Open.
При первом подключении PuTTY покажет предупреждение безопасности с отпечатком ключа хоста (RSA key fingerprint). Убедитесь, что отпечаток совпадает с тем, что предоставил администратор сервера.
Если все настроено верно, аутентификация пройдет автоматически с помощью закрытого ключа. Вы увидите сообщение: «Authentication using public key».
Команды SSH для работы с файлами
В работе с SSH пригодится команда scp — она позволяет безопасно копировать файлы с сервера с использованием Secure Copy Protocol:
Команда sftp позволяет работать с SSH File Transfer Protocol (SFTP). Он шифрует все передаваемые данные, в том числе информацию о пользователе, что обеспечивает конфиденциальность и защищает данные от перехвата. С безопасный протокол для передачи файлов, который работает поверх SSH-соединения. SFTP дает возможность передавать файлы, создавать каталоги, управлять правами, возобновлять прерванные задачи.
sftp для передачи файлов:
Для управления файлами и каталогами:
Для возобновления процессов:

Устранение неполадок и лучшие практики
Частые проблемы и их решения
Рассказываем, какие ошибки при работе с SSH-серверами могут возникнуть и что делать, чтобы их исправить:
Connection Refused (отказано в соединении). Проверьте, запущен ли SSH-сервер, откройте порт в файрволе и посмотрите, правильно ли он указан.
Permission Denied (разрешение отклонено). Установите права доступа к ключу только для себя: chmod 600. Добавьте публичный ключ в authorized_keys.
Too Many Authentication Failures (слишком много неудачных попыток). Очистите кеш ключей (ssh-add -D), увеличьте лимит попыток в конфиге (MaxAuthTries 6).
Нестабильное соединение. Включите сжатие командой ssh -C, установите KeepAlive: ServerAliveInterval 30.
Нет доступа к root-аккаунту . Выполните вход через обычного пользователя и используйте su -. Временно разрешите root-вход в sshd_config.
Потеря ключей или повреждение файлов ключей. Создайте новые ключи командой ssh-keygen и загрузите публичный ключ на сервер, выполнив ssh-copy-id.
Опечатки в конфигурационном файле. Сделайте резервную копию файла, исправьте ошибки и перезапустите SSH с sudo systemctl restart sshd.
Рекомендации по безопасности
Важно настроить SSH-сервер и ключи правильно, чтобы никто посторонний не получил к ним доступ. Дадим несколько советов, чтобы обеспечить безопасность работы:
Защитите ключи. Установите passphrase на приватные ключи, установите права на доступ к ним только для себя командой chmod 600. А публичные ключи откройте для всех: выполните chmod 644. Храните приватные ключи только на своем устройстве.
Используйте разные ключи для разных сервисов, например, один для GitHub, второй для рабочих серверов, третий — для личных. Регулярно обновляйте ключи, примерно раз в один-два года, и делайте бэкапы.
Для безопасности сервера не используйте стандартные порты, отключите аутентификацию по паролю и используйте AllowUsers для ограничения доступа.
Перед тем, как вносить изменения в конфигурационный файл, делайте бэкапы конфигов и тестируйте все в параллельной сессии в терминале. А еще не закрывайте рабочую сессию до того, как не убедитесь, что в новой конфигурации все работает правильно.
Проверяйте и чистите authorized_keys, мониторьте логи подключений и обновляйте SSH-софт.
Заключение
SSH — мощный протокол, который позволяет защитить данные при их передаче между компьютером и удаленным сервером. В статье мы осветили базовые моменты по установке OpenSSH, рассказали об основных командах и дали советы, как создать безопасную конфигурацию. Чтобы больше погрузиться в тему, можете изучить SSH-туннелирование, или проброс портов, настройку SSH-конфигурации клиента (~/.ssh/config), использование SSH-агента для управления ключами и более сложные сценарии вроде jump-host и certificate-based аутентификации.