Auf einer ansonsten unberührten Windows 7 Enterprise-Installation:
- Installieren Sie PuTTY 0.62
- Erstellen Sie mit puttygen.exe ein öffentliches / privates Schlüsselpaar
- Fügen Sie den öffentlichen Schlüssel zum Einfügen in OpenSSH authorized_keys zum github-Konto hinzu
- Fügen Sie dem Festzug einen privaten Schlüssel hinzu
- Installieren Sie msysgit 1.7.8 mit folgenden Optionen:
- Verwenden Sie Git über die Windows-Eingabeaufforderung
- Verwenden Sie (Tortoise) Plink, um plink.exe zu korrigieren
- Stellen Sie sicher, dass know_hosts ein Github-Fingerabdruck hinzugefügt wird, indem Sie in PuTTY eine Verbindung zu github.com herstellen und den Fingerabdruck akzeptieren
~/.ssh/config
Zum Lesen bearbeiten :Host github.com User git Hostname github.com PreferredAuthentications publickey IdentityFile ~\.ssh\github.ppk
ssh -vvvT [email protected]
gibt: http://pastebin.com/Tu3Fc6nJ . Beachten Sie, dass ich zur Eingabe des Passworts aufgefordert werde, obwohl es erfolgreich in den Festzug geladen wurde.
Ich habe es versucht: chmod 700 ~/.ssh; chmod 600 ~/.ssh/*
aus Git Bash heraus, aber es gab keinen Effekt, wie durch verifiziertls -l
.
Ich sollte beachten, dass ich genau dieses Setup bei einer früheren Windows 7-Installation hatte. Soweit ich das beurteilen kann, ist alles identisch.
Was funktioniert, ist das Generieren von Schlüsseln aus Git Bash. Ich kann diese Schlüssel jedoch nicht zu einem Festzug hinzufügen, was ein großer Schmerz ist. Tatsächlich scheint jeder Versuch, von PuTTY generierte Schlüssel zu verwenden, erfolglos zu sein.
Gibt es einen Einblick darüber, warum dies aufgrund der Protokolle nicht funktioniert? Danke im Voraus.
Antworten:
Sie verwechseln zwei völlig getrennte Programme: PuTTY und OpenSSH.
plink
und Pageant sind Teil von PuTTY. Derssh
Befehl ist Teil von OpenSSH. Es ist unklar, welches Programm von Git verwendet wird. Sie müssen die%GIT_SSH%
Umgebungsvariable dafür überprüfen .Die Programme verwenden verschiedene Agentenprotokolle. OpenSSH kann PuTTYs Pageant nicht verwenden. Es hat seine eigene
ssh-agent
(die unter Windows leider etwas kompliziert zu bedienen ist).PuTTY und
plink
speichern Sie die Sitzungseinstellungen in der Registrierung, die in der PuTTY-Benutzeroberfläche bearbeitet werden kann. Sie verwenden nichts in~/.ssh/
; Dieses Verzeichnis wird nur von OpenSSH verwendet.Die von OpenSSH und PuTTY verwendeten privaten Schlüsselformate sind unterschiedlich. Sie können
.ppk
mit OpenSSH keinen Schlüssel verwenden. Wenn Sie den Schlüssel in PuTTYgen generiert haben, müssen Sie den Befehl "Export → OpenSSH" verwenden.quelle
plink
unterstützt kein OpenSSH-Schlüsselformat. Wenn dies bei Ihrer Version der Fall ist, verwenden Sie diese nichtplink
. es ist etwas anderes.ssh
trotz des Ladens in Pageant zur Eingabe einer Passphrase aufgefordert wird ". Sie sind verwirrend die beiden Programme.~/.ssh/config
PuTTY, wie Sie sagten, nicht verwendet wird. Ich möchte jedoch noch einmal betonen, dass GIT_SSH darauf hindeutet, sich zu verbinden, und dennoch, wenn ich die ssh-Konfigurationsdatei für OpenSSH ändere, werden die Änderungen in Git Bash wiedergegeben, wenn ich versuche, eine Verbindung zu github herzustellen. Im Wesentlichen glaube ich, dass die Umgebungsvariable GIT_SSH ignoriert wird, und ich nehme an, dass dies für mein Betriebssystem spezifisch ist. Ich werde morgen ein frisches Bild anprobieren.Ich habe eine Schritt-für-Schritt-Anleitung zusammengestellt, um mit PuTTYs Plink-Anwendung für die SSH-Authentifizierung ein Git-Setup für Windows zu erhalten.
Folgen Sie weiter unten:
Installieren
Installieren Sie putty.zip, das auf der PuTTY-Download-Seite verfügbar ist, oder laden Sie es einzeln herunter.
PuTTY: putty.exe (oder per FTP )
Der SSH- und Telnet-Client selbst.
Plink: plink.exe (oder per FTP )
Eine Befehlszeilenschnittstelle zum PuTTY-Back-End.
Pageant: pageant.exe (oder per FTP )
Ein SSH-Authentifizierungsagent für PuTTY, PSCP, PSFTP und Plink.
PuTTYgen: puttygen.exe (oder per FTP )
Ein Dienstprogramm zur Erzeugung von RSA- und DSA-Schlüsseln.
Generieren Sie RSA- und PPK-Schlüssel
ssh-keygen
um ein Paar öffentlicher / privater RSA-Schlüssel zu generieren. Weitere Informationen dazu finden Sie im offiziellen Artikel Generieren von SSH-Schlüsseln .~/.ssh/id_rsa
(privaten) Schlüssel über Conversions→ Import key.~/.ssh/id_rsa.ppk
.Sie sollten jetzt die folgenden Schlüssel in Ihrem
~/.ssh
Verzeichnis haben:id_rsa
: Privater (OpenSSH) RSA-Schlüsselid_rsa.pub
: Öffentlicher (OpenSSH) RSA-Schlüsselid_rsa.ppk
: Privater (PuTTY) SchlüsselInstallieren Sie Git für Windows .
Stellen Sie sicher, dass Sie Plink verwenden.
Hinweis: Wenn Sie Git bereits installiert haben, können Sie das Installationsprogramm einfach erneut ausführen und Plink als Standard-SSH-Anwendung festlegen.
Legen Sie Ihre Umgebungspfade fest.
Fügen Sie die folgenden Systemvariablen hinzu (falls nicht bereits festgelegt):
GIT_HOME
:C:\Program Files\Git
GIT_SSH
:C:\Program Files (x86)\PuTTY\plink.exe
Hängen Sie das Git-Binärverzeichnis an den Systempfad an.
Path
:%Path%;%GIT_HOME%\bin
Öffnen Sie Pageant und laden Sie den PPK-Schlüssel unter
~/.ssh/id_rsa.ppk
.Hinweis: Sobald Pageant gestartet wurde, können Sie auf das entsprechende Symbol in der Taskleiste rechts neben der Uhrzeit klicken.
Öffnen Sie Putty und stellen Sie eine Verbindung her, um Ihre Verbindung über SSH zu testen und den Schlüssel des Servers als bekannten Host hinzuzufügen.
Beispiele für Hostnamen:
[email protected]:22
(oder via ssh-agentssh -Tv [email protected]
)[email protected]:22
(oder via ssh-agentssh -Tv [email protected]
)Starten Sie Git Bash.
Sie sollten in der Lage sein, von Ihrem Remote-Host aus zu pushen und zu ziehen, ohne jedes Mal ein Kennwort eingeben zu müssen.
Abkürzung
Sie können eine Verknüpfung in Ihr Startverzeichnis einfügen, um Ihren Schlüssel bei jeder Anmeldung bei Ihrem Windows-Konto automatisch zu laden.
Über Stapelskript
Diese Idee wurde durch eine Antwort auf diese Frage inspiriert:
Über den Windows Explorer
Navigieren Sie im Windows Explorer zum Startverzeichnis.
Das Benutzerverzeichnis
Startup/
(bevorzugt) befindet sich unter:Das All Users-
Startup/
Verzeichnis befindet sich unter:Klicken Sie mit der rechten Maustaste in den Ordner und wählen Sie New→Shortcut
In der Verknüpfung erstellen Dialog geben Sie die folgenden Informationen.
"C:\Program Files (x86)\PuTTY\pageant.exe"
Pageant Autoload
Rechtsklick auf die neue Verknüpfung und wählen Sie Propertiesaus dem Kontextmenü.
Ändern Sie die folgenden Felder auf der Registerkarte Verknüpfung :
"%PROGRAMFILES(x86)%\PuTTY\pageant.exe" id_rsa.ppk
%USERPROFILE%\.ssh
Anmerkungen:
Wenn Sie ein 32-Bit-Windows-Betriebssystem verwenden, sollten Sie
%PROGRAMFILES%
stattdessen die Umgebungsvariable verwenden%PROGRAMFILES(x86)%
.Wenn Sie Ihre Verknüpfung im Startverzeichnis für alle Benutzer abgelegt haben, stellen Sie sicher, dass der aktuelle Benutzer einen
id_rsa.ppk
Schlüssel in seinem~/.ssh
Verzeichnis hat. Andernfalls wird der Schlüssel nicht automatisch geladen.Schlußbemerkungen
Hier hast du es. Wenn Sie sich das nächste Mal in Ihrem Windows-Profil anmelden, werden Sie mit einer Pageant-Eingabeaufforderung zur Eingabe des Kennworts für Ihren Schlüssel begrüßt. Wenn Sie für Ihren Schlüssel kein Kennwort festgelegt haben, sollte Ihr Schlüssel automatisch und ohne Aufforderung geladen werden.
Wenn Sie sich nicht sicher , ob Ihr Schlüssel sind geladen , um die aktuellen Schlüssel in Pageant anzeigen , indem Sie die Auswahl Ansicht Keys aus dem Kontextmenü für Pageant in der Taskleiste.
quelle
In reinem Englisch
Puttygen kann verschiedene Schlüssel bauen, Github will SSH1-RSA (?, Ich benutze ssh2-Schlüssel mit Pageant auf Github)
Fügt hinzu
Siehe auch diesen Beitrag zum Debuggen von Pageant- Problemen mit Github
quelle