4

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

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

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

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

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

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

Резервный пароль - это деталь реализации и, следовательно, не в вики? Была ли автоматически сгенерирована пара ключей, как это было предложено (если так, как открытый ключ попал на сервер)? Или это происходит только по паролю.

Если он использует только комбинацию пароля и имени пользователя, шифруются ли данные вообще? Если так, как это шифруется?

1 ответ1

7

Статья Википедии сбивает с толку разные уровни SSHv2. (Возможно, это было несколько правильно для SSHv1 десять лет назад, но оно определенно упрощено до уровня глупости.)

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


В SSHv2, когда вы подключаетесь к серверу (после того как оба конца обмениваются списками поддерживаемых алгоритмов), первым шагом является обмен ключами, который каким-то образом генерирует симметричный ключ, используемый для шифрования всего соединения. (Сервер также аутентифицирован как побочный эффект этого процесса.)

В большинстве случаев для этого будут использоваться D – H или ECDH , что означает:

  1. Клиент генерирует пару ключей DH (используется только для этого соединения) и отправляет свой открытый ключ DH.

  2. Сервер также генерирует новую пару ключей DH. Он также загружает свою пару ключей SSH "ключ хоста" с диска.

    Затем он подписывает открытый ключ DH закрытым ключом SSH и отправляет оба открытых ключа (а также подпись) клиенту.

  3. Клиент проверяет подпись и проверяет, что открытый ключ SSH сервера находится в known_hosts.

    Затем он использует оба ключа DH (private клиента + public сервера) для генерации общего ключа шифрования и отбрасывает свою пару ключей DH.

  4. Сервер также использует оба ключа DH (личный сервер + общедоступный клиент) для генерации того же общего ключа шифрования, а также отбрасывает свою пару ключей DH.

  5. Обе стороны включают шифрование.

(Есть некоторые другие методы обмена ключами, но они используются редко.)

Следующий шаг - аутентификация клиента. Обратите внимание, что на этом этапе соединение уже зашифровано, хотя клиентский SSH-ключ еще не использовался!

  1. Клиент отправляет "запрос на обслуживание" для аутентификации клиента.

  2. Сервер предлагает несколько механизмов - "пароль", "открытый ключ", возможно, другие.

  3. Если у вас есть пара ключей SSH, клиент выбирает "открытый ключ", отправляет ваши открытые ключи SSH и использует ваш закрытый ключ SSH, чтобы подписать некоторые случайные данные, предоставленные сервером, чтобы подтвердить владение ключом.

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .