TortoiseGIT, Git Bash und PLink/PuTTY gemeinsam mit einem SSH-Schlüsselpaar verwenden

  • strict warning: Non-static method view::load() should not be called statically in /usr/share/nginx/www/drupal/sites/all/modules/views/views.module on line 1113.
  • strict warning: Declaration of views_handler_field::query() should be compatible with views_handler::query($group_by = false) in /usr/share/nginx/www/drupal/sites/all/modules/views/handlers/views_handler_field.inc on line 0.
  • strict warning: Declaration of views_handler_field_user::init() should be compatible with views_handler_field::init(&$view, $options) in /usr/share/nginx/www/drupal/sites/all/modules/views/modules/user/views_handler_field_user.inc on line 0.
  • strict warning: Declaration of views_handler_argument::options_validate() should be compatible with views_handler::options_validate($form, &$form_state) in /usr/share/nginx/www/drupal/sites/all/modules/views/handlers/views_handler_argument.inc on line 0.
  • strict warning: Declaration of views_handler_argument::query() should be compatible with views_handler::query($group_by = false) in /usr/share/nginx/www/drupal/sites/all/modules/views/handlers/views_handler_argument.inc on line 0.
  • strict warning: Declaration of views_handler_sort::options_validate() should be compatible with views_handler::options_validate($form, &$form_state) in /usr/share/nginx/www/drupal/sites/all/modules/views/handlers/views_handler_sort.inc on line 0.
  • strict warning: Declaration of views_handler_sort::options_submit() should be compatible with views_handler::options_submit($form, &$form_state) in /usr/share/nginx/www/drupal/sites/all/modules/views/handlers/views_handler_sort.inc on line 0.
  • strict warning: Declaration of views_handler_sort::query() should be compatible with views_handler::query($group_by = false) in /usr/share/nginx/www/drupal/sites/all/modules/views/handlers/views_handler_sort.inc on line 0.
  • strict warning: Declaration of views_handler_filter::options_validate() should be compatible with views_handler::options_validate($form, &$form_state) in /usr/share/nginx/www/drupal/sites/all/modules/views/handlers/views_handler_filter.inc on line 0.
  • strict warning: Declaration of views_handler_filter::query() should be compatible with views_handler::query($group_by = false) in /usr/share/nginx/www/drupal/sites/all/modules/views/handlers/views_handler_filter.inc on line 0.
  • strict warning: Declaration of views_handler_relationship::query() should be compatible with views_handler::query($group_by = false) in /usr/share/nginx/www/drupal/sites/all/modules/views/handlers/views_handler_relationship.inc on line 0.
  • strict warning: Declaration of views_plugin_query::options_submit() should be compatible with views_plugin::options_submit($form, &$form_state) in /usr/share/nginx/www/drupal/sites/all/modules/views/plugins/views_plugin_query.inc on line 0.
  • strict warning: Declaration of views_plugin_argument_validate::options_submit() should be compatible with views_plugin::options_submit($form, &$form_state) in /usr/share/nginx/www/drupal/sites/all/modules/views/plugins/views_plugin_argument_validate.inc on line 0.
  • strict warning: Declaration of views_plugin_row::options_validate() should be compatible with views_plugin::options_validate(&$form, &$form_state) in /usr/share/nginx/www/drupal/sites/all/modules/views/plugins/views_plugin_row.inc on line 0.

Um Git unter Windows benutzen zu können gibt es verschiedene Möglichkeiten. Die Kombination aus msysGit und TortoiseGit scheint mir aber ganz gute Dienste zu leisten. Ähnlich wie TortoiseSVN fügt sich TortoiseGit in das Kontextmenü des Explorers ein. Das ist gerade für Leute ohne viel Erfahrung mit der Kommandozeilen (CLI, Command line interface) hilfreich. Obwohl Git auf jeden Fall wunderbar und schnell via CLI zu bedienen ist. Um im Windows eine halbwegs gute Shell zur Git zur Verfügung zu haben, bietet sich Git Bash an. Bei der Installation von msysGit kann man diese ebenfalls ins Kontextmenü integrieren:

MsysGit-Setup: GitBashMsysGit-Setup: GitBash

Aber gerade um manche (und vielleicht zunehmend mehr ;-) ) Git-Arbeitsschritte mittels CLI zu versuchen ist es wichtig, dass man sich nicht unnötig Steine in den Weg legt. Ein möglicher Stein ist die Authentifizierung. Git verwendet standardmäßig SSH als Authentifizierungsmechanismus. SSH baut in den meisten Fällen auf einem Public-Key-Verfahren auf, nutzt nach erfolgreicher Authentifizierung aber ein symmetrisches Verfahren. MsysGit hat die dafür notwendigen Programme schon für sich und Git Bash verfügbar gemacht.

Um SSH für TortoiseGit verfügbar zu machen, kann man sich bei dessen Installation wahlweise für TortoisePLink oder OpenSSH entscheiden. Letzteres ist das eben erwähnte, von msysGit verwendete Paket:

TortoiseGit Setup: AuthentifizierungTortoiseGit Setup: Authentifizierung

TortoiseGit kann mit beidem Umgehen, aber wie auch im Setup beschrieben integriert sich TortoiseGit deutlich besser in Windows und soll hier verwendet werden.

Das Ziel ist es also, dass TortoiseGit sich mit Hilfe von TortoisePLink bei anderen Git-Repositories authentifizieren kann. Außerdem soll selbiges auch mit Git Bash möglich sein, idealerweise mit so wenig Redundanz wie möglich.

Schlüssel generieren

Für die Verwendung von SSH sind hier ein öffentlicher und ein privater Schlüssel notwendig. Diese werden letztlich einfach durch zwei Dateien dargestellt. Oft werden diese "id_" und "id_.pub" genannt, wobei beispielsweise für "rsa" steht. In der Unix und GNU/Linux-Welt werden diese normalerweise im Ordner ".ssh" im Home-Verzeichnis des Benutzers abgelegt.

Dieses Schlüsselpaar muss zunächst generiert werden. Am einfachsten geht das mittels Git Bash. Das ist über den Startmenüeintrag "Git" aufrufbar. Nachdem sich die Shell geöffnet hat erwartet einen eine leere Eingabeaufforderung. Oft wird als Bezeichnung des Schlüssels die E-Mail-Adresse angegeben, im Beispiel ist diese "my@email.de". Dort muss jetzt folgendes Eingegeben werden:

ssh-keygen -t rsa -C "my@email.de"

Darauf hin sollte die Ausgabe ungefähr so aussehen:

Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/MrPringle/.ssh/id_rsa): <Enter>
Created directory '/c/Users/MrPringle/.ssh'.
Enter passphrase (empty for no passphrase): <Passwort>
Enter same passphrase again: <Passwort>
Your identification has been saved in /c/Users/MrPringle/.ssh/id_rsa.
Your public key has been saved in /c/Users/MrPringle/.ssh/id_rsa.pub.
The key fingerprint is:
58:a7:5f:39:77:a6:c6:e7:25:fb:c5:a4:46:f2:89:fb my@email.de

Der Standardspeicherort kann übernommen werden (Enter) und das Passwort sollte, wie jedes Passwort, ein gutes sein. Das Ergebnis sind die zwei neue Schlüsseldateien: id_rsa und id_rsa.pub. Daraufhin kann man zumindest schon mal in Git Bash SSH nutzen.

Übrigens, dass Passwort ist weder (!) öffentlicher noch privater Schlüssel. Es wird genutzt um den privaten Schlüssel zu schützen. Dieser soll nämlich nicht unverschlüsselt herum liegen.

TortoiseGit

Als nächstes muss TortoiseGit mit dem soeben generierten Schlüsselpaar bekannt gemacht werden. Das geht mittels dem von TortoiseGit installierten Programm puttygen. Es befindet sich im Startmenüeintrag von TortoiseGit. Wir wollen damit aber keinen neues Schlüsselpaar genieren. Stattdessen soll der eben mittels OpenSSH generierte Schlüssel eingelesen und im PuTTY-eigenen Format gespeichert werden.

Dazu muss im Menü "Conversions" der Eintrag "Import key" ausgewählt werden. Im nun erscheinenden Dialog wird der private Schlüssel ausgewählt. Im Beispiel ist das c:\Users\MrPringle\.ssh\id_rsa. Das zuvor vergebene Passwort muss nun eingegeben werden und den Schlüssel ist importiert. Abschließend muss nur noch der private Schlüssel gespeichert werden. Dazu auf die "Save private key"-Schaltfläche drücken und z.B. der Übersicht halber eine Datei "id_rsa.ppk" im selben Ordner wie die anderen Schlüsseldaten anlegen. Der öffentliche Schlüssel muss nicht separat gespeichert werden. Dieser ist nämlich als Klartext in der Datei id_rsa.pub bereits problemlos lesbar.

Bei TortoiseGit kann man nun entweder einzelnen Remotes (andere Repositories) jeweils einen Schlüssel zuordnen oder ein Standardschlüssel für das lokale Repository angeben. Im Dialog für das Klonen eines Repositories kann man einen PuTTY-Key angeben:

TortoiseGit: CloneTortoiseGit: Clone

Für ein Repository was das Lesen ohne Authentifizierung erlaubt, kann dieser Eintrag weggelassen werden. Erfordert die Kommunikation aber nun eine Authentifizierung wird die fehlende Angabe eines Schlüssels mit der folgenden Meldung beantwortet:

&quot;No supported authentication method available&quot;"No supported authentication method available"

Die zuvor erstellte id_rsa.ppk-Datei kann direkt im Clone-Dialog angegeben werden. Nach einem Klick auf "Clone" muss denn das Passwort eingegeben werden. Leider sucht TortoiseGit nicht standardmäßig im .ssh-Ordner des Nutzers.

Alternativ ist es eine Möglichkeit, ein weiteres mitgeliefertes Programm mit der Schlüsselverwaltung zu beauftragen: pagent. Ist dieses aktiv und kennt die benutzten Schlüssel, kümmert es sich bei Anfragen, wie z.B. beim Klonen, um die Preisgabe des Schlüssels. Das geschieht in einer sicheren Art und Weise und man hat den Vorteil das oder die Passwörter nur einmal beim Start von pagent eingeben zu müssen. Genauer basiert auch die direkte Angabe des Schlüssels im Clone-Dialog auf einer anschließenden automatischen Verwaltung mit pagent. Um es manuell zu starten wählt man es z.B. aus dem Startmenüeintrag von TortoiseGit aus. Über das Kontextmenü des Systray-Icons kann man dann Schlüssel hinzufügen.

Falls nach wie vor ein Fehler kommt, könnte das daran liegen, dass das Remote-Repository noch nicht über den neuen Public-Key informiert wurde. Das soll dann auch der letzte notwendige Schritt sein.

SSH und Git

Der Normalfall ist, dass beim Zielrepository der eigene öffentliche Schlüssel zu hinterlegen ist. Damit kann verifiziert werden, ob man selber den privaten Schlüssel besitzt. Webseiten wie Github, repo.or,cz oder Assembla bieten dazu in den eigenen Account-Einstellungen die Möglichkeit einen (oder mehrere) öffentlichen Schlüssel hinzuzufügen, häufig ist dann etwas von "SSH Public Keys" zu lesen. Dazu muss dieser oft in ein Textfeld kopiert werden. Eine einfache Möglichkeit ist es den Inhalt der Datei "id_rsa.pub" zu kopieren indem man sie beispielsweise in einem Editor öffnet. Es ist darauf zu achten, dass tatsächlich alles (Strg+A) kopiert wird. Zum Teil ist es auch möglich, die Datei direkt im Webinterface auszuwählen.

Ist das geschafft, steht der erfolgreichen verschlüsselten Verbindung eigentlich nichts mehr im Wege.

CLI und weitere Einstellungen

Mittels Git Bash war die Nutzung via SSH, bis auf den letzten Schritt, schonseit der Schlüsselerstellung möglich. Es lassen sich weitere kleine Einstellungen nun auch sehr gut (und für TortoiseGit nutzbar) damit einbringen. Unabhängig davon in welchem Ordner man sich befindet, kann man immer globale Einstellungen von Git ändern. Es sollten für Commits z.B. immer ein gewünschter Name und eine E-Mail-Adresse eingetragen sein:

git config --global color.ui auto
git config --global user.name "Mein Name"
git config --global uset.email "my@email.de"

Um Git unter Windows benutzen zu können gibt es verschiedene Möglichkeiten. Die Kombination aus msysGit und TortoiseGit scheint mir aber ganz gute Dienste zu leisten. Ähnlich wie TortoiseSVN fügt sich TortoiseGit in das Kontextmenü des Explorers ein. Das ist gerade für Leute ohne viel Erfahrung mit der Kommandozeilen (CLI, Command line interface) hilfreich. Obwohl Git auf jeden Fall wunderbar und schnell via CLI zu bedienen ist.

Trackback URL for this post:

https://blog.voodoo-arts.net/trackback/87
Choosing best accessories to prim clothes 2012

I just got up from nap and I am already reading your articles. This signifies something! Really useful info. Thnx! .Took me time to read all the comments, but I really enjoyed the post. It proved to become Really helpful to me and Im certain to all the commenters right here Its always nice when you can not only be informed, but also entertained Im certain you had fun writing this post. .mulberry outlet uk . What a great site, a love everything you write. Please keep writing and Ill keep coming! .mulberry bags .a good blog article ,We stock Argyle, Bailey, Cardy, Sheepskin, ugg boots. . Hello! I just would like to give a huge thumbs up for the great data youve here on this post. I shall be coming again to your blog for extra soon. .Have you ever thought about publishing an e-book or guest authoring on other websites? I have a blog based upon on the same subjects you discuss and would really like to have you share some stories/information. I know my viewers would appreciate your work. If you are even remotely interested, feel free to send me an e-mail. . mulberry bags .

Are there anybody c
gbjing's JimdoPage-2
charley gold's barbecued shrimp

Chicago's disheveled common manager
Curing leaky gut syndrome with aloe vera

http://mrpanda.net/forums/member.php?u=47032
http://www.wakeboard.co.de/memberlist.php?mode=viewprofile&u=8617
http://apexwoodwindowsanddoors.com/includes/guest/index.php?showforum=1
http://vnusgames.us/forum/showthread.php?59166-acheter-des-ugg-ugg-en-li...
http://oxfordsrs.org.uk/content/recent-activities-winter-2012-13#comment...
http://dvyniubaidares.lt/forumas/profile.php?id=105110
http://h2436.ptzhost.com/webstat/guest/index.php?showforum=1
http://netxinh.com/docs/showthread.php/1018-NFL-Jerseys-China-2679?p=491...
http://tv.lm.konin.pl/forum/posting.php?mode=newtopic&f=23http://autoweb...
http://bookmarksiowa.org/content/book-marks-unveiling#comment-2716196
http://forum.scanpay.dk/profile.php?id=114035
http://www.njhsastro.org/talk/forum.php?mod=viewthread&tid=4933246&extra=
http://www.barkleypositemaxget.biz/foamposites-for-sale-Why-Snowboard-Sa...
http://www.ukbusinesslinkdirectory.co.uk/submit.php?c=419
http://www.elderwilderness.com/newthread.php?fid=4
http://autoweb.nfu.edu.tw/modules/newbb/newtopic.php?forum=2http://xgo.c...
http://diendanbds.vn/members/11957-Rearceshell.html
http://www.hevrati.org.il/?attachment_id=596#comment-1470
http://freegiftcardsguide.net/chilis-new-wild-or-mild-menu-contest-20-ch...
http://www.flying-pins-rheintal.ch/gaestebuch/insert.php
http://antimicrobial.cn/plus/view.php?aid=190292
http://www.betright.co.za/forum/index.php?PHPSESSID=3279m326csedpihj2khu...
http://levitra10mg.postbit.com/
http://www.foampositesforsale2013nike.com/foamposites-for-sale-Electroni...
http://escortfindercanada.com/ads/perche-lui-o-lei-ha-cominciato-a-passe...
http://massagingevansville.com/comment/reply/60085#comment-form
http://fullworld.ru/tv-show/7-revizor-revizor-smotret-onlayn-serii.html
http://www.myicbr.org/election-results-2013-icbr-board-of-directors/#com...
http://www.barcodenation.co.uk/identity-blog/2009/01/global-id-forum-to-...
http://www.tsuda-blog.jp/2007/10/post.html
http://shcool15.in.ua/forum/index.php?act=post&do=new_post&f=3
http://www.918luntan.com/forum.php?mod=viewthread&tid=40302&extra=
http://natural-remedy-herbal.com/colon-cleanse/new-article-detailing-pro...
http://ontology.pp.ua/wp-includes/guest/index.php?showforum=11
http://www.forumicon.com/showthread.php?3265-Pulire-accuratamente-la-pro...
http://www.time4fish.net/board/index.php?action=post;board=34.0
http://vodomet007.ru/wp-includes/guest/index.php?showforum=1
http://boztek.net/content/plan#comment-1273197
http://www.oilfield-equipment.org/bbs/forum.php?mod=viewthread&tid=39084...
http://africaschild.org.uk/blog/wp-includes/guest/index.php?showforum=1
http://www.abileneamericanclassifieds.com/ads/ma-che-informazioni-sara-i...
http://988house.info/viewthread.php?tid=144301&extra=
http://www.saenderski3d.pl/forum/post.php?fid=15
http://www.forumicon.com/showthread.php?3263-%C3%80-travers&p=41598&post...
http://zhuchki.info/includes/guest/index.php?showforum=1
http://superiorscrapbooking.com/?p=96717#comment-211494
http://www.iz-web.com/cgi-bin/hiyokobbs1/board.cgi
http://superiorscrapbooking.com/?p=96717#comment-210779
http://netxinh.com/docs/showthread.php/1018-NFL-Jerseys-China-2679?p=494...
http://www.pembenotlar.com/2012/09/dantel-gelinlik-modelleri/comment-pag...
http://banmepho.vn/showthread.php/83862-Tiffany-And-Co-XDUTQ68658?p=1682...
http://shcool15.in.ua/forum/index.php?s=e971a410ed0a5b72214e4ae166875937...
http://atlet.zp.ua/includes/guest/index.php?showforum=1
http://---.chine-li.info/viewthread.php?tid=189134&extra=

Submitted by Teepcidinny (not verified) on Mon, 2013-04-08 19:55.

Tags for TortoiseGIT, Git Bash und PLink/PuTTY gemeinsam mit einem SSH-Schlüsselpaar verwenden