SSH-Authentifizierung für Git und Mercurial einrichten
In diesem Thema wird erläutert, wie Sie die SSH-Authentifizierung für Git- und Mercurial-Repositories einrichten.
* 
SSH-Authentifizierung wird nur unterstützt, wenn Codebeamer auf einem Linux/Unix-Server ausgeführt wird.
Wenn die Port-Umleitung für Codebeamer verwendet wird, prüfen Sie den Wert von CB_BASE_URL im Skript scmloop/scm-ssh.
SSH-Schlüssel generieren 
Ein Schlüsselpaar ist nur gültig, wenn es ein Paar ist: Ihr lokaler Betriebssystem-Benutzer muss Zugang zu beiden haben (in Unix/Linux-Umgebung: Verzeichnis ~/.ssh). Wenn Sie sich mit einem anderen lokalen Benutzer anmelden, müssen Sie Folgendes tun:
Erstellen Sie ein neues Schlüsselpaar und stellen Sie den öffentlichen Schlüssel Codebeamer zur Verfügung (siehe unten, wie): dies ist die empfohlene Methode, da Codebeamer mehrere Schlüssel pro Konto verarbeiten kann.
Verschieben Sie die Schlüsselpaar-Dateien (privat + öffentlich) aus dem Verzeichnis ~/.ssh des vorherigen Benutzers in das Verzeichnis des neuen Benutzers. Prüfen Sie in diesem Fall, ob die Berechtigungen für die Dateien und das Verzeichnis korrekt sind: Das Verzeichnis ~/.ssh muss über rwx------ Zugriffsrechte verfügen (oktal 700), während die Schlüsseldateien (z.B. id_rsa, id_rsa.pub) über rw-Zugriffsrechte verfügen müssen (nur der Besitzer kann lesen und schreiben, oktal 600). OpenSSH ermöglicht es Ihnen nicht, eine Verbindung mit dem Remote-Host herzustellen, wenn die Berechtigungen nicht restriktiv genug sind.
Auf dem Server Codebeamer in /etc/ssh/sshd_config müssen entweder alle Betriebssystem-Konten oder zumindest das Konto, das für SSH-Operationen verwendet wird, wie folgt zugelassen werden:
AllowUsers=root codebeamer
* 
AllowUsers muss alleBetriebssystem-Konten enthalten, die sich über SSH anmelden dürfen.
Sie können jetzt Ihre Schlüssel für Ihren Betriebssystem-Benutzer generieren und sie mit Ihrem Codebeamer Konto zuordnen.
Linux und Mac OS X 
1. Öffnen Sie ein Terminal-Fenster auf Ihrem Desktop-Rechner.
2. Geben Sie die folgenden Befehle ein: Verwenden Sie Ihre eigene Benutzer-ID, und akzeptieren Sie die Standardoptionen.
$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/zk/.ssh/id_rsa):
Created directory '/home/zk/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/zk/.ssh/id_rsa.
Your public key has been saved in /home/zk/.ssh/id_rsa.pub.
The key fingerprint is:
0f:a9:76:db:20:f9:cc:25:42:cc:65:7e:ce:ac:97:03 zk@zk-ubuntu
The key's randomart image is:
+--[ RSA 2048]----+
| |
| |
| o |
| o * |
| S . |
| EB o |
| =.B.+ |
| . B+* . |
| ..=.. |
+-----------------+
Führen Sie den folgenden Befehl aus: cat $HOME/.ssh/id_rsa.pub, und kopieren Sie die Ausgabe. Dies ist Ihr öffentlicher Schlüssel.
Windows 
* 
Auf Windows wird Git (http://msysgit.github.io/) mit einem Tool namens Git Bash geliefert. Sie können über Start > Programme > Git darauf zugreifen. Mit diesem Tool können Sie die Schlüssel in denselben Schritten wie für Linux generieren.
Auf Windows können SSH-Schlüssel mit PuTTYGen generiert werden (den Download-Link finden Sie auf der PuTTY Download-Seite). Wenn Sie Mercurial verwenden, können Sie auch ptlink von dieser Seite herunterladen.
Starten Sie PuTTYGen, generieren Sie den Schlüssel (Schaltfläche Generate), und speichern Sie den privaten Schlüssel in einer Datei (Schaltfläche Save private key) wie z.B. 'key.ppk' unter Ihrem Basisverzeichnis. Kopieren Sie den Inhalt von Public key for pasting into OpenSSH authorized_keys file (dies ist Ihr öffentlicher Schlüssel).
Abbildung: SSH-Schlüssel mit PuttyGen generieren
Für Mercurial müssen Sie die Datei .hgrc in Ihrem Basisverzeichnis bearbeiten. Fügen Sie die folgenden Zeilen hinzu (wenn die Datei nicht vorhanden ist, erstellen Sie sie einfach):
[ui]
ssh = C:\Program Files\PuTTY\ptlink.exe -i USERHOME\key.ppk
Beachten Sie, dass der Pfad von ptlink in Ihrer Umgebung unterschiedlich sein kann. Ersetzen Sie USERHOME durch Ihr Basisverzeichnis.
Führen Sie vor dem ersten Zugriff auf Codebeamer über ssh den folgenden Befehl aus:
C:\Program Files\PuTTY\ptlink.exe ssh://CODEBEAMER_URL
Dadurch wird der Host-Schlüssel von Codebeamer zu den bekannten Hosts hinzugefügt.
Ihren SSH-Schlüssel Ihrem Codebeamer Konto zuordnen 
Sie können Ihren generierten öffentlichen Schlüssel mit den folgenden Schritten mit Ihrem Codebeamer Konto zuordnen:
1. Kehren Sie zu Ihrem Codebeamer Fenster zurück.
2. Wählen Sie die Registerkarte Systemverwaltung aus.
3. Gehen Sie zu Benutzerkonten.
4. Gehen Sie zu Ihrem Codebeamer Konto.
5. Wählen Sie die Registerkarte Öffentliche SSH-Schlüssel bearbeiten aus.
6. Laden Sie den öffentlichen Schlüssel aus dem Terminal (Linux) oder aus PuTTYGen (Windows) hoch, oder kopieren und fügen Sie ihn in die Felder ein und speichern Sie ihn.
7. Speichern.
Benutzerdefinierten privaten Schlüssel einrichten 
Wenn Sie den benutzerdefinierten privaten Schlüssel verwenden möchten (etwas anderes als .ssh/id_rsa) und Sie diesen mit Codebeamer verwenden möchten und das Klonen oder die Authentifizierung von Git fehlschlägt, müssen Sie Git so einrichten, dass es diesen benutzerdefinierten privaten Schlüssel verwendet. Es gibt mehrere Möglichkeiten, dies zu tun. Weitere Informationen finden Sie unter How to tell git which private key to use.
Das folgende Video veranschaulicht auch, wie benutzerdefinierte SSH-Schlüssel konfiguriert werden: How To Configure Custom SSH Keys.
War dies hilfreich?