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

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

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

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

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

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

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

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

Клиентские реализации

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

Библиотеки