SSH

SSH — сетевой протокол для удалённого управления сервером. Проще говоря, через SSH вы можете управлять своим сервером в Нью-Йорке, находясь при этом в Австралии. Важнейшее свойство, которое сделало этот протокол популярным, — защищённость. При условии правильной настройки аутентификации его почти невозможно взломать.

Как работает SSH-подключение

SSH работает просто, по классической модели из двух компонентов клиент-сервер:

SSH-сервер в виде набора ПО устанавливается на удалённый сервер, которым нужно управлять. Обычно SSH-сервер прослушивает порт 22.

SSH-клиент устанавливается на компьютер, с которого идёт управление.



В зависимости от настроек SSH-сервер может принимать входящие тремя способами:

  1. По IP-адресу: SSH-сервер «помнит» IP-адрес клиента и выполняет подключение, если запрос SSH-клиента приходит с этого адреса. Этот метод соединения небезопасен, потому что IP-адрес легко подменить.
  2. По паролю: пользователь задаёт пароль, и его необходимо вводить при каждом подключении. Пароль передаётся в зашифрованном виде, поэтому такой метод соединения безопасен.
  3. По ключу: создаются приватный и публичный ключи шифрования. Приватный, или секретный, хранится на стороне SSH-клиента.


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

Безопасность — важное преимущество SSH, которому разработчики уделяют большое внимание. История создания SSH началась в 1995 году, когда Финер Ярохам, недовольный уровнем безопасности протокола Telnet, разработал SSH как его замену. С годами в протоколе продолжали развивать инструменты защиты от взломов SSH. Вот некоторые технологии безопасности, которые есть в нём сегодня:

  1. Шифрование: SSH использует криптографические алгоритмы для защиты данных, передаваемых между клиентом и сервером. Он шифрует весь сетевой трафик, включая аутентификацию, команды и данные, с использованием симметричного шифрования для конфиденциальности информации.
  2. Аутентификация: SSH обеспечивает проверку подлинности клиента и сервера для предотвращения несанкционированного доступа. Он предлагает несколько способов аутентификации, включая использование логина и пароля, публичного ключа и сертификатов X.509. Аутентификация с использованием публичного ключа обеспечивает повышенную безопасность, позволяя клиентам проверить идентификацию сервера и избежать атак Man-in-the-Middle (MITM).
  3. SSH использует хеширование с использованием алгоритмов вроде SHA-2 для обеспечения целостности данных. Это позволяет обнаружить любые модификации данных, произведённые во время передачи по сети. Если данные были изменены или повреждены, SSH обнаружит это и прервёт соединение, чтобы предотвратить использование повреждённых данных.
  4. Создание каналов: SSH может создавать множество каналов внутри одного SSH-соединения, каждый со своими параметрами шифрования и аутентификации. Это значит, что если один из каналов подвергнется атакам или будет скомпрометирован, другие каналы останутся не затронутыми. 
  5. Аудит и журналирование: SSH сохраняет список соединений, пользователей и событий — благодаря этому можно обнаружить подозрительную активность и предотвратить действия злоумышленников.