ОБЩАЯ ПОДДЕРЖКА SSH НЕ В ТЕМЕ. Вопросы поддержки можно задать на https://superuser.com. Secure Shell (SSH) - это криптографический сетевой протокол для безопасной передачи данных. Используйте этот тег для программирования вопросов, связанных с Secure Shell. Распространенные проблемы с аутентификацией и настройкой не входят в тему переполнения стека.

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

SSH был разработан как замена для Telnet и других небезопасных протоколов удаленной оболочки, таких как протоколы Berkeley rsh и rexec, которые отправляют информацию, особенно пароли, в виде открытого текста, делая их восприимчивыми к перехвату и раскрытию с помощью анализа пакетов. Шифрование, используемое SSH, предназначено для обеспечения конфиденциальности и целостности данных в незащищенной сети, такой как Интернет, хотя файлы просочились Эдвард Сноуденуказывают, что Агентство национальной безопасности иногда может расшифровать SSH.

SSH использует криптографию с открытым ключом для аутентификации удаленного компьютера и позволяет ему при необходимости аутентифицировать пользователя. Есть несколько способов использовать SSH; Одним из них является использование автоматически сгенерированных пар открытых и закрытых ключей для простого шифрования сетевого подключения, а затем использование аутентификации по паролю для входа в систему.

Другой способ состоит в том, чтобы использовать сгенерированную вручную пару открытый-закрытый ключ для выполнения аутентификации. Этот метод позволяет пользователям или программам входить в систему без указания пароля. Любой может создать соответствующую пару разных ключей (открытый и закрытый). Открытый ключ размещается на всех компьютерах, которые должны разрешать доступ владельцу соответствующего закрытого ключа (владелец хранит секретный ключ в секрете). Хотя аутентификация основана на закрытом ключе, сам ключ никогда не передается по сети во время аутентификации. SSH только проверяет, владеет ли тот же человек, который предлагает открытый ключ, соответствующим закрытым ключом.

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

Полезные ссылки

Реализации серверов

Реализации клиентов

  • OpenSSH
  • PuTTY (набор инструментов SSH для Windows)

Библиотеки