Какой открытый ключ используется при работе с Git? - PullRequest
2 голосов
/ 13 июля 2011

Я наивен в Git и Linux / SSH, поэтому мой вопрос в том, что такое открытый ключ used for?

Nam.

Update

Спасибо за @emboss, как показано ниже. Что я ищу, так это то, что серверу необходимо проверить, что запрос клиента git поступил от зарегистрированного аккаунта

Зарегистрированными являются учетные записи, открытый ключ которых находится в списке серверов:)

Спасибо, тиснение!

Ответы [ 4 ]

3 голосов
/ 13 июля 2011

Обычно вы предоставляете git-серверу ваш открытый ключ (например, как это делается в github - сначала вы должны отправить им свой открытый ключ).Затем он используется сервером для аутентификации.Подключившись к git-серверу, вы подписываете сообщение своим закрытым ключом.Это сообщение проверяется сервером с использованием ранее предоставленного вами открытого ключа ( см. RFC 4252, раздел 7 ).Если сервер может проверить сообщение с помощью вашего открытого ключа, он может быть уверен, что вы действительно являетесь тем, кем себя называете.

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

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

0 голосов
/ 13 июля 2011

Он используется для шифрования git-связи между вами и удаленным репозиторием, гарантируя, что ваши push-и-pull-данные не могут быть отслежены или подделаны.

0 голосов
/ 13 июля 2011

Вы можете использовать RSA или DSA при создании ключей с ssh-keygen с опцией -t. Как работает RSA, вы можете прочитать в Википедии

RSA включает в себя открытый ключ и закрытый ключ. Открытый ключ может быть известен всем и используется для шифрования сообщений. Сообщения зашифрованный с открытым ключом может быть расшифрован только с использованием частного ключ. Ключи для алгоритма RSA генерируются следующим путь: [...]

Вот инструкция по настройке ваших ключей для github:

0 голосов
/ 13 июля 2011

Это ключ, сгенерированный командой ssh-keygen на вашем компьютере.Имеет расширение ".pub".

...