Herstellen einer Verbindung zu Github mithilfe des von PuTTY generierten SSH-Schlüssels in Windows 7

Auf einer ansonsten makellosen Windows 7 Enterprise-Installation:

  1. Installieren PuTTY 0.62
  2. Erstellen Sie ein öffentliches / privates Schlüsselpaar mit puttygen.exe -
  3. Fügen Sie den öffentlichen Schlüssel zum Einfügen in OpenSSH authorized_keys zum Github-Konto hinzu
  4. Privaten Schlüssel zu Pageant hinzufügen
  5. Installieren Sie msysgit 1.7.8 mit den folgenden Optionen:
    • Verwenden Sie Git über die Windows - Eingabeaufforderung
    • Benutze (Tortoise)Plink, um Plink zu korrigieren.exe -
  6. Sicherstellen github fingerprint wird zu know_hosts hinzugefügt, indem eine Verbindung zu github.com in PuTTY und akzeptieren Fingerabdruck
  7. Edit ~/.ssh/config zu lesen:

    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 Passphrase aufgefordert werde, obwohl sie erfolgreich in Pageant geladen wurde.

Ich habe versucht: chmod 700 ~/.ssh; chmod 600 ~/.ssh/* aus Git Bash aber es gab keinen Effekt, wie von ls -l überprüft.

Ich sollte beachten, dass ich hatte genau dieses setup funktioniert auf einem früheren Windows 7 installieren. 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 in Pageant einfügen, was ein großer Schmerz ist. Tatsächlich scheint jeder Versuch, mit PuTTY generierte Schlüssel zu verwenden, unsucessful zu sein.

Irgendwelche Erkenntnisse darüber, was verhindert, dass dies basierend auf den Protokollen funktioniert? Danke im Voraus.

Author: user1686, 2012-01-14

3 answers

Ich habe eine Schritt-für-Schritt-Anleitung zusammengestellt, um die Git-Einrichtung für Windows mithilfe der Plink-Anwendung von PuTTY für die SSH-Authentifizierung zu erhalten.

Folgen Sie unten:


Einrichtung

  1. Installieren Sie putty.zip welches auf der [[43]}PuTTY Download Seite verfügbar ist oder einzeln heruntergeladen werden kann.

    • PuTTY: putty.exe (oder durch FTP)

      Der SSH-und Telnet-Client selbst.

    • Plink: plink.exe (oder durch FTP)

      Eine Befehlszeilenschnittstelle zu den PuTTY-Backends.

    • Pageant: Festzug.exe (oder durch FTP)

      Ein SSH-Authentifizierungsagent für PuTTY, PSCP, PSFTP und Plink.

    • PuTTYgen: puttygen.exe (oder durch FTP)

      Eine RSA-und DSA-Schlüsselgenerierung Dienstprogramm.

  2. RSA-und PPK-Schlüssel generieren

    1. Verwenden Sie mit der Git Bash 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.
    2. Importieren Sie in PuTTYgen Ihren vorhandenen ~/.ssh/id_rsa (privaten) Schlüssel über . Importschlüssel.
    3. Speichern Sie den importierten Schlüssel über die Schaltfläche Privaten Schlüssel speichern unter ~/.ssh/id_rsa.ppk.
    4. Sie sollten jetzt die folgenden Schlüssel in Ihrem Verzeichnis ~/.ssh haben:

      • id_rsa: Privater (OpenSSH) RSA-Schlüssel
      • id_rsa.pub: Öffentlicher (OpenSSH) RSA-Schlüssel
      • id_rsa.ppk: Privater (PuTTY) Schlüssel
  3. Installation Git für Windows.

    Stellen Sie sicher, dass Sie Plink verwenden.

    Git-setup

    Hinweis: Wenn Sie Git bereits installiert haben, können Sie das Installationsprogramm einfach erneut ausführen und Plink als Standard-SSH-Anwendung festlegen.

  4. Legen Sie Ihre Umgebungspfade fest.

    1. Navigieren Sie in Systemsteuerung zur Systemansicht.
    2. Wählen Sie Erweiterte Systemeinstellungen.
    3. Klicken Sie im Fenster Systemeigenschaften auf die Registerkarte Erweitert.
    4. Klicken Sie auf Umgebungsvariablen....
    5. Fügen Sie die folgende Systemvariablen (falls noch nicht festgelegt):

      • GIT_HOME: C:\Program Files\Git
      • GIT_SSH: C:\Program Files (x86)\PuTTY\plink.exe
    6. Hängt das Git-Binärverzeichnis an den Systempfad an.

      • Path: %Path%;%GIT_HOME%\bin
  5. Öffnen Sie Pageant und laden Sie den ppk-Schlüssel unter ~/.ssh/id_rsa.ppk.

    Hinweis: Sobald der Festzug begonnen hat, können Sie klicken Sie auf das Symbol in der Taskleiste in der Taskleiste neben der Uhrzeit rechts.

  6. Öffnen Sie Putty und stellen Sie eine Verbindung her, um Ihre Verbindung über SSH zu testen, und fügen Sie den Serverschlüssel als bekannten Host hinzu.

    Kitt

    Beispiele Hostnamen:

  7. Git Bash starten.

    Sie sollten in der Lage sein drücken und ziehen Sie von Ihrem Remote-Host, ohne jedes Mal ein Passwort einzugeben.


Verknüpfung

Sie können eine Verknüpfung in Ihrem Startverzeichnis platzieren, um Ihren Schlüssel jedes Mal automatisch zu laden, wenn Sie sich bei Ihrem Windows-Konto anmelden.

Über Batch-Skript

Diese Idee wurde durch eine Antwort auf diese Frage inspiriert:

Super User: Wie erstelle ich eine Verknüpfung von CMD?.

REM |==================================================================|
REM | Pageant Autoload.bat                                             |
REM |                                                                  |
REM | This script creates a shortcut for auto-loading a PPK (key) in   |
REM | Pageant by writing a temporary VB script and executing it. The   |
REM | following information below is added to the shortcut.            |
REM |                                                                  |
REM | Filename  : Pageant Autoload                                     |
REM | Target    : pageant.exe                                          |
REM | Arguments : id_rsa.ppk                                           |
REM | Start in  : ~/.ssh                                               |
REM |==================================================================|
@echo off

REM |==================================================================|
REM | Global Values - Do not touch these!                              |
REM |==================================================================|
SET VBSCRIPT="%TEMP%\%RANDOM%-%RANDOM%-%RANDOM%-%RANDOM%.vbs"
SET STARTUP_DIR=Microsoft\Windows\Start Menu\Programs\Startup
SET STARTUP_USER_DIR=%APPDATA%\%STARTUP_DIR%
SET STARTUP_ALL_USERS_DIR=%PROGRAMDATA%\%STARTUP_DIR% REM Alternative

REM |==================================================================|
REM | Shortcut Values - You can change these to whatever you want.     |
REM |==================================================================|
SET FILENAME=Pageant Autoload.lnk
SET TARGET=%PROGRAMFILES(x86)%\PuTTY\pageant.exe
SET ARGUMENTS=id_rsa.ppk
SET START_IN=%%USERPROFILE%%\.ssh
SET DESCRIPTION=Autoload PuTTY key with Pageant on startup (Ctrl+Alt+S)
SET HOTKEY=CTRL+ALT+S

REM |==================================================================|
REM | Write a new VB script, on the fly; execute and delete it.        |
REM |==================================================================|
ECHO Set oWS = WScript.CreateObject("WScript.Shell") >> %VBSCRIPT%
ECHO sLinkFile = "%STARTUP_USER_DIR%\%FILENAME%" >> %VBSCRIPT%
ECHO Set oLink = oWS.CreateShortcut(sLinkFile) >> %VBSCRIPT%
ECHO oLink.TargetPath = "%TARGET%" >> %VBSCRIPT%
ECHO oLink.Arguments = "%ARGUMENTS%" >> %VBSCRIPT%
ECHO oLink.WorkingDirectory = "%START_IN%" >> %VBSCRIPT%
ECHO oLink.Description = "%DESCRIPTION%"  >> %VBSCRIPT%
ECHO oLink.HotKey = "%HOTKEY%" >> %VBSCRIPT%
ECHO oLink.Save >> %VBSCRIPT%
CScript //Nologo %VBSCRIPT%
DEL %VBSCRIPT% /f /q

Über Windows Explorer -

  1. Navigieren Sie im Windows Explorer zum Startverzeichnis.

    • Benutzer Startup/ Verzeichnis (bevorzugt) befindet sich unter:

      %AppData%\Microsoft\Windows\Start Menu\Programs\Startup
      
    • Alle Benutzer Startup/ Verzeichnis befindet sich unter:

      %ProgramData%\Microsoft\Windows\Start Menu\Programs\Startup
      
  2. Klicken Sie mit der rechten Maustaste in den Ordner und wählen Sie NewVerknüpfung

  3. Geben Sie im Dialog Verknüpfung erstellen Folgendes ein Information.

    • Lage: "C:\Program Files (x86)\PuTTY\pageant.exe"
    • Name: Pageant Autoload
  4. Klicken Sie mit der rechten Maustaste auf die neue Verknüpfung und wählen Sie Eigenschaften aus dem Kontextmenü.

  5. Ändern Sie die folgenden Felder auf der Registerkarte Shortcut:

    • Ziel: "%PROGRAMFILES(x86)%\PuTTY\pageant.exe" id_rsa.ppk
    • Start in: %USERPROFILE%\.ssh

     
    Noten:

    1. Wenn Sie ein 32-Bit-Windows-Betriebssystem verwenden, sollten Sie die Umgebungsvariable %PROGRAMFILES% anstelle von %PROGRAMFILES(x86)%.

    2. Wenn Sie Ihre Verknüpfung im Startverzeichnis Aller Benutzer abgelegt haben, stellen Sie sicher, dass der aktuelle Benutzer einen id_rsa.ppk-Schlüssel in seinem Verzeichnis ~/.ssh hat oder der Schlüssel nicht automatisch geladen wird.


Schlussbemerkungen

Da hast du es. Nächstes Mal loggen Sie sich in Ihr Windows ein profil, werden Sie mit einem Pageant Prompt begrüßt werden, um das Passwort für Ihren Schlüssel einzugeben. Wenn Sie kein Kennwort für Ihren Schlüssel festgelegt haben, sollte Ihr Schlüssel automatisch ohne Eingabeaufforderung geladen werden.

Wenn Sie nicht sicher sind, ob Ihr Schlüssel geladen ist, zeigen Sie die aktuellen Tasten in Pageant an, indem Sie View Keys aus dem Kontextmenü für Pageant in der Taskleiste auswählen.

 23
Author: Mr. Polywhirl,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2017-03-20 10:04:38

Sie verwechseln zwei völlig getrennte Programme: PuTTY und OpenSSH.

  • plink und Pageant sind Teil von PuTTY. Der Befehl ssh ist Teil von OpenSSH. Es ist unklar, welches Programm von Git verwendet wird; Sie müssen die Umgebungsvariable %GIT_SSH% dafür überprüfen.

  • Die Programme verwenden verschiedene Agentenprotokolle; OpenSSH kann PuTTY ' s Pageant nicht verwenden; es hat sein eigenes ssh-agent (was leider etwas kompliziert ist Windows).

  • PuTTY und plink speichern die Sitzungseinstellungen in der Registrierung, die in der PuTTY-Oberfläche bearbeitet werden können. 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 keinen .ppk - Schlüssel mit OpenSSH verwenden. Wenn Sie den Schlüssel in PuTTYgen generiert haben, müssen Sie den Befehl "Export → OpenSSH" verwenden.

    $ ssh -vvvT [email protected]
    OpenSSH_4.6p1, OpenSSL 0.9.8e 23 Feb 2007
    ...
    debug2: key_type_from_name: unknown key type 'PuTTY-User-Key-File-2:'
    
 21
Author: user1686,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2012-01-14 16:47:56

In einfachem Englisch

Debug3: Keine RSA1-Schlüsseldatei /c/Users/Radu/\.ssh\github.ppk.

Debug2: key_type_from_name: unbekannter Schlüsseltyp ' PuTTY-User-Key-File-2

Puttygen kann verschiedene Schlüssel erstellen, Github will SSH1-RSA (?, I benutze ssh2 Schlüssel mit Pageant auf github)

Fügt

Siehe auch diesen Beitrag zum Debuggen von Pageant - Problemen mit Github

>plink.exe -v -agent [email protected]
Looking up host "github.com"
Connecting to 207.97.227.239 port 22
Server version: SSH-2.0-OpenSSH_5.1p1 Debian-5github2
Using SSH protocol version 2
We claim version: SSH-2.0-PuTTY_Release_0.62
Doing Diffie-Hellman group exchange
Doing Diffie-Hellman key exchange with hash SHA-256
Host key fingerprint is:
ssh-rsa 2048 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48
Initialised AES-256 SDCTR client->server encryption
Initialised HMAC-SHA1 client->server MAC algorithm
Initialised AES-256 SDCTR server->client encryption
Initialised HMAC-SHA1 server->client MAC algorithm
Pageant is running. Requesting keys.
Pageant has 1 SSH-2 keys
Using username "git".
Trying Pageant key #0
Remote debug message: Forced command: gerve lazybadger
Remote debug message: Port forwarding disabled.
Remote debug message: X11 forwarding disabled.
Remote debug message: Agent forwarding disabled.
Remote debug message: Pty allocation disabled.
Authenticating with public key "github/lazybadger" from agent
Sending Pageant's response
Remote debug message: Forced command: gerve lazybadger
Remote debug message: Port forwarding disabled.
Remote debug message: X11 forwarding disabled.
Remote debug message: Agent forwarding disabled.
Remote debug message: Pty allocation disabled.
Access granted
Opened channel for session
Server refused to allocate pty
Started a shell/command
Hi lazybadger! You've successfully authenticated, but GitHub does not provide shell access.
Server sent command exit status 1
Disconnected: All channels closed
 4
Author: Lazy Badger,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2012-01-14 17:00:03