Как хост-машина узнает о закрытом ключе на машине, которая выполняет на нем ssh [метод ssh-copy-ip]

С помощью этого метода:

ssh -i   private key  ubuntu_A@1.2.3.4

Я говорю, что здесь это мой закрытый ключ, а ubuntu_A сопоставляет мой закрытый ключ с открытым ключом в authorized_keys .

Меня запутал метод ssh-copy-id из ubuntu_B . Я сделал:

ssh-copy-id 1.2.3.4

и скопировал мой открытый ключ в файл authorized_key .

Теперь, когда я использую ssh 1.2.3.4 , я могу войти в ubuntu_A . С помощью этого метода ubuntu_A узнает о закрытом ключе в ubuntu_B .

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

0
задан 13 December 2020 в 10:44

1 ответ

Технически удаленный сервер не видит ваш закрытый ключ. Ваша система предлагает серверу идентификатор вашего ключа (который соответствует идентификатору в открытом ключе) для запуска процесса.

Из руководств Digital Ocean по Пониманию процесса шифрования и соединения SSH, в частности, раздел «Аутентификация доступа пользователя к серверу» и только биты процесса аутентификации ключа:

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

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

  1. Клиент начинает с отправки идентификатора пары ключей, с помощью которой он хотел бы аутентифицироваться, на сервер.
  2. Сервер проверяет файл author_keys учетной записи, в которую клиент пытается войти, для получения идентификатора ключа.
  3. Если в файле найден открытый ключ с совпадающим идентификатором, сервер генерирует случайное число и использует открытый ключ для шифрования номер.
  4. Сервер отправляет клиенту это зашифрованное сообщение.
  5. Если у клиента действительно есть связанный закрытый ключ, он сможет расшифровать сообщение с помощью этого ключа, раскрывая исходный код. номер.
  6. Клиент объединяет расшифрованный номер с общим ключом сеанса, который используется для шифрования связи, и вычисляет хэш MD5 этого значения.
  7. Затем клиент отправляет этот хэш MD5 обратно на сервер в качестве ответа на зашифрованное числовое сообщение.
  8. Сервер использует тот же общий сеансовый ключ и исходное число, которое он отправил клиенту, для вычисления значения MD5 на своем своя. Сравнивает свой расчет с тем, что прислал клиент назад. Если эти два значения совпадают, это доказывает, что клиент находился в владение закрытым ключом, и клиент аутентифицируется.

Как видите, асимметрия ключей позволяет серверу шифровать сообщения клиенту с помощью открытого ключа. Затем клиент может доказать что он удерживает закрытый ключ, правильно расшифровав сообщение. То используются два типа шифрования (симметричный общий секрет и асимметричные открытые и закрытые ключи) каждый может использовать свои конкретные сильные стороны этой модели.

(К сожалению, нет возможности еще больше упростить это объяснение из приведенного выше.)

2
ответ дан 11 December 2020 в 15:09

Другие вопросы по тегам:

Похожие вопросы: