Что SSH является ключевым?

Я зарегистрировался в GitHub, и заметьте ssh ключевую опцию, которая выглядела интересной. Я первоначально ожидал что-то как ssl ключ (имя, co имя, и т.д.). После прохождения через него я замечаю, что только поместил пароль, и это всегда - myuser@comp-name (это - окна). Почему? Я думал, что это был идентификатор пользователя/передачи, и я могу создать отдельные ключи для отдельной цели по причинам конфиденциальности.

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

4
задан 17.05.2010, 23:15

2 ответа

Добавить к превосходному ответу David:

Создать ключ SSH (или более точно: пара "открытый/закрытый ключ") в Windows, можно использовать (свободный) PuttyGen. Это - дополнение популярному клиенту PuTTY SSH.

Инструкции, например, здесь: http://theillustratednetwork.mvps.org/Ssh/Private-publicKey.html

Конечно, можно также создать ключ с помощью инструментов OpenSSH; они просто менее распространены в Windows.

1
ответ дан 07.12.2019, 19:25

Вы услышали об асимметричном шифровании (также названный криптографией с открытым ключом)? Это - технология, на основе которой ключи SSH.

Фундаментальное понятие асимметричного шифрования - то, что у Вас есть два ключа криптографии, которые являются очень обычно большими количествами (или эквивалентно, длинные строки двоичных данных). Любое сообщение, зашифрованное с одним из них, может быть дешифровано только с другой одним - даже с самим исходным encyption ключом! Это полезно, потому что можно сохранить один из ключей, закрытого ключа, себе, и опубликовать другой, открытый ключ, где-нибудь онлайн или везде, где Вам нравится. Люди могут зашифровать сообщения с помощью открытого ключа и быть уверены, что только, держатель соответствующего закрытого ключа, можно дешифровать их и считать их содержание. (Это - то, как GPG и PGP и подобная работа программ, если Вы когда-либо слышали о тех),

Оказывается, что процесс также работает наоборот с переключенными ключами. При шифровании чего-то с помощью закрытого ключа он может только быть дешифрован с помощью соответствующего открытого ключа. Это может казаться бесполезным, потому что любой в мире может получить Ваш открытый ключ и дешифровать сообщение, но это действительно имеет один очень полезный побочный эффект: это подтверждает, что сообщение появилось от Вас. Поскольку ни у кого больше в мире нет Вашего закрытого ключа, никто больше, возможно, не сделал сообщение, которое может быть дешифровано с Вашим открытым ключом.

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

Я (еще) не зарегистрировался в GitHub сам, таким образом, я не знаком с точной процедурой, но я подозреваю это, когда они просят a username@host, это так же, как комментарий для идентификации конкретного ключа. Если Вы войдете в GitHub от различных компьютеров, то у Вас будет другой закрытый ключ SSH для каждого из тех компьютеров, и GitHub должен отслеживать все соответствующие открытые ключи. username@host довольно стандартный путь состоит в том, чтобы маркировать открытые ключи SSH, которые прибывают от различных людей и/или различных хостов.

Между прочим, стоит упомянуть, что аутентификацию пары ключей SSH обычно считают более безопасной, чем имя пользователя/аутентификация по паролю. Причина состоит в том, что при использовании имени пользователя и пароля для вхождения в веб-сайт, необходимо поделиться той информацией по крайней мере с еще одним компьютером: веб-сервер, который выполняет сайт. Большую часть времени это прекрасно, но всегда возможно, что, кто бы ни отвечает за веб-сайт или даже просто кто-то, у кого есть доступ к серверу, мог записывать Ваш пароль и использовать его за Вашей спиной для исполнения роли Вас. Используя частную/с открытым ключом пару устраняет ту возможность, потому что Вы никогда не совместно используете закрытый ключ ни с кем вообще, даже сервер, в который Вы входите. Так, хотя сервер (например, GitHub) отлично может проверить, является ли это действительно Вами вход в систему, он все еще не имеет достаточной информации, чтобы симулировать входить в систему как Вы.

Что касается того, как Вы создаете пару ключей SSH: я - пользователь Linux сам, таким образом, я не уверен, как это было бы сделано с программным обеспечением, которое Вы используете в Windows. Безотносительно клиентской программы SSH Вы используете (PuTTY?) должен дать Вам некоторый способ создать пару ключей.

9
ответ дан 07.12.2019, 19:25

Теги

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