GIT. настройка SSH

Понедельник, 06 Янв. 2014 by Kirill Shershen


В посте на хабре "Как начать работать с GitHub: быстрый старт" очень хорошо описано как настроить SSH через putty, возможно для TortoiseGIT он работает, но для консоли в windows - нет. 

Я сначало тоже пытался настроиться по этой статье, создал ключи с помощью утилиты puttygen.exe

сохранил публичный ключ в c:\users\<username>\.ssh\id_rsa.ppk, добавил и запустил его в pageant.exe. Скопировал приватный ключ и добавил его на github.

Но при пуше мне выдавалась ошибка:

Это происходит потому что git использует утилиту ssh которая основана на OpenSSH, а Pageant от Putty какой то свой собственный протокол. Поэтому при пуше ключи и не передавались, отсюда и ошибка. 

Надо настраивать ключи через стандартный гитовский ssh.

Для начала нужно добавить в системные пути c:\Program Files (x86)\Git\bin\

Далее открываем c:\users\<username>\.ssh, если там чтото есть удаляем(делаем бекап) на всякий случай.

открываем консоль и пишем

> ssh-keygen -t rsa -C "pc_name"
Generating public/private rsa key pair.
Enter file in which to save the key (//.ssh/id_rsa): c:\Users\1\.ssh\id_rsa
Enter passphrase (empty for no passphrase): <Enter>
Enter same passphrase again: <Enter>
Your identification has been saved in c:\Users\<username>\.ssh\id_rsa.
Your public key has been saved in c:\Users\<username>\.ssh\id_rsa.pub.
The key fingerprint is:
8a:59:f2:2c:0a:58:6d:b3:75:d8:b9:c0:2f:08:c2:f1 pc_name

ключи у нас есть. теперь надо добавить их в агента.

Опять в консоли пишем:

> ssh-add id_rsa

если отработало без ошибок значит хорошо, если появилась ошибка:

Could not open a connection to your authentication agent

значит не запущен ssh-agent, идем в c:\Program Files (x86)\Git\bin\ и запускаем bash.exe и пишем

$ exec ssh-agent bash
$ ssh-add c:\\Users\\<username>\\.ssh\\id_rsa

должно отработать без ошибок.

Дальше нужно добавить публичный ключ на все хранилища(обычно в настройках аккаунта). Скопировать можно командой

$ clip < c:\\Users\\<username>\\.ssh\\id_rsa.pub

Теперь можно проверить что есть доступ к хранилищу по SSH командой:

$ ssh -T git@github.com
или
$ ssh -T git@bitbucket.org

в результате может вывести запрос на добавление хоста в список известных хостов, нужно написать yes. 

Если всё получилось должна появится строка:

Hi username! You've successfully authenticated, but GitHub does not
provide shell access.

Это значит что всё работает. 

Теги: git


blog comments powered by Disqus