2013-07-31 2 views
0

Все,Как SSH работает с GiHub или BitBucket

Я использую SSH поговорить с GitHub/BitBucket, иногда это работает, но иногда это просто не удалось оставил меня без подсказки. Когда я пытаюсь выяснить проблему, я понимаю, что на самом деле я не совсем понимаю, как это работает:

  1. Как выбрать секретный ключ?
    Мы можем использовать ssh-add или pageant для загрузки закрытых ключей, но могут быть загружены ключи mulitple - как ssh-клиент может решить, какой секретный ключ использовать, когда я получаю вызов после отправки запроса?
  2. Как выбран открытый ключ?
    Есть много открытых ключей на сервере GitHub, когда я отправляю запрос на github (например, git push), я не помню, мне нужно указать свое имя пользователя, зарегистрированное в GitHub (нам нужно настроить имя пользователя.name , но я думаю, что это только для тегов ваших коммитов), а также как GitHub определяет, какой открытый ключ использовать при получении запроса, и даже GitHub знает, какой пользователь отправляет запрос (как?), как он может выбрать правильную публикацию ключ от нескольких клавиш - помните, что я мог бы добавить более 1 ключа к моей учетной записи.

Спасибо.

+0

Дайте больше информации о том, когда произойдут ваши неудачи, хотя это, вероятно, должно быть в другом вопросе, а не в вопросе How, вы также задаете здесь вопрос «почему», и это сбивает с толку, что вы действительно хотите получить ответ к. Если вам нужна помощь в выяснении причин, почему иногда вы можете подключаться, а иногда и не можете, вам нужно предоставить дополнительную информацию. – vgoff

ответ

2

Файл ~/.ssh/id_rsa выбран по умолчанию.

Если вам нужно предоставить другой ключ, вы можете использовать директиву IdentityFile в своем файле ~/.ssh/config.

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

Я предлагаю иметь man pages в вашем распоряжении. Вот хорошая ссылка для OpenSSH project, с гораздо более подробной информацией о том, как это работает в общем смысле.

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

Смежные вопросы