HowTo GitHub = Git Bash + PuTTY

Auf meinem System habe ich Putty für eine Remote Shell per SSH installiert. Außerdem läuft auch WinSCP für den sicheren Dateitransfer.

Nachdem ich lange mit GitHub über TortoiseGit gearbeitet habe, konnte mich ein Kollege überzeugen bisher verborgenen Features unter Zuhilfenahme der Git Bash zu nutzen.

Auch die Möglichkeit der Authentifizierung per RSA KeyPair wollte ich nutzen.

Die Installation der Git Bash (mSysGit) von http://code.google.com/p/msysgit/ war Problemlos möglich.

Auch das lokale Arbeiten funktioniert einwandfrei. Selbst in Verbindung mit Tortoise als auch der Visual Studio 2010 Extension “Git Source Control Provider” (http://visualstudiogallery.msdn.microsoft.com/63a7e40d-4d71-4fbb-a23b-d262124b8f4c?SRC=VSIDE) gibt es keine Probleme.

Probleme macht jedoch das Abrufen von Repositorys oder das Pushen von Updates bei Verwendung der SSH.

Zum Beispiel schlägt folgender Befehl fehl:

git clone git@github.com:blndev/progit.git

Die Fehlermeldung lautet: “No supported authentication methods available (server sent: publickey)”

gitbash_error

Folgendes habe ich vorher getan:

Alle Einstellungen während des ablaufenden Prozesses wurden im Standard belassen. Durch diesen Befehl wurde ein Verzeichnis “.ssh” unter %userprofile% erzeugt. In diesem liegen folgende Dateien:

  • id_rsa
  • id_rsa.pub

Die Datei id_rsa.pub habe ich im Notepad geöffnet und den Text komplett kopiert. Dieser Text wurde dann bei GitHub als Key eingetragen.

Eine Testverbindung mittels:

war erfolgreich.

Außerdem habe ich in die globale Konfiguration meinen Benutzernamen und die bei GitHub registrierte Email eingetragen. So muss ich dies nicht für jedes Projekt einzeln angeben.

  • git config --global user.name "Firstname Lastname"
  • git config --global user.email “your_email@youremail.com”

 

Viele Tipps haben leider nicht geholfen. Auch nicht das Entfernen folgenden Registry Keys:

“HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\Sessions\Default Settings”

Nach vielen Recherchen und einigem probieren schien Putty das Problem zu verursachen.

Dies führte mich zu folgender Lösung:

1. Start von puttygen.exe (über GitBash)

puttygen

Nun muss ein Key generiert werden.

Der private Schlüssel muss als PPK gespeichert werden.

Nun muss im Menüpunkt “Conversions” der Punkt “Export Open SSH Key” gewählt werden. Die Datei wird unter %userprofile%\.ssh\id_rsa gespeichert.

Als nächstes wird die Option “Save public key” gewählt und die Datei unter 
%userprofile%\.ssh\id_rsa.pub abgelegt

Nachdem dies erledigt ist muss der Public Key wieder bei GitHub registriert werden.

Ein Test mit “ssh –T git@github.com” sollte erfolgreich sein.

Nun wird der Putty Authentication Agent über die Git Bash wie folgt gestartet:

pageant&

Dieses Tool erscheint im System Tray als Icon und muss von dort per Doppelklick hervorgeholt werden.

pageant

Hier wird nun per “Add Key” der zuvor gespeicherte Private Key (*.ppk) geladen.

Ist das geschehen kann das Tool wieder minimiert werden (close).

Jetzt sollte einer Verwendung von GitBash (msysgit) über Putty auf GitHub nichts mehr entgegen stehen.

Happy Coding

Technorati-Markierungen: ,,,,,

Keine Kommentare: