Windows 7'de PuTTY tarafından oluşturulan SSH anahtarını kullanarak github'a bağlanma


20

Aksi halde bozulmamış bir Windows 7 Enterprise yüklemesinde:

  1. PuTTY 0.62'yi yükleyin
  2. Puttygen.exe ile ortak / özel anahtar çifti oluşturma
  3. Github hesabına OpenSSH yetkili_anahtarlarına yapıştırmak için genel anahtar ekleyin
  4. Sayfa dizisine özel anahtar ekle
  5. Msysgit 1.7.8'i aşağıdaki seçeneklerle yükleyin:
    • Windows Komut İsteminden Git'i kullanma
    • Plink.exe'yi düzeltmek için (Tortoise) Plink sivri kullanın
  6. PuTTY'de github.com'a bağlanıp parmak izini kabul ederek know_hosts'a github parmak izinin eklendiğinden emin olun
  7. Düzenleme ~/.ssh/configokumak için:

    Host github.com
        User git
        Hostname github.com
        PreferredAuthentications publickey
        IdentityFile ~\.ssh\github.ppk
    

ssh -vvvT git@github.comverir: http://pastebin.com/Tu3Fc6nJ . Başarılı bir şekilde pageant'a yüklenmesine rağmen parolayı sormam gerektiğini unutmayın.

Ben denedim: chmod 700 ~/.ssh; chmod 600 ~/.ssh/*Git Bash içinden ama doğrulandığı gibi bir etkisi yoktu ls -l.

Bu kurulumun önceki bir Windows 7 kurulumunda çalıştığına dikkat etmeliyim. Anlayabildiğim kadarıyla her şey aynı.

İşi, Git Bash içinden anahtarlar üretmektir. Ancak, bu anahtarları büyük bir acı olan yarışmaya ekleyemem. Aslında, PuTTY tarafından üretilen anahtarları kullanma girişimlerinin başarısız olduğu görülmektedir.

Günlüklere dayalı olarak bunun çalışmasını neyin engellediğine dair bir fikir var mı? Şimdiden teşekkürler.


-vT ile, lütfen, daha az ayrıntı düzeyi
Lazy Badger

Yanıtlar:


20

Tamamen ayrı iki programı karıştırıyorsunuz: PuTTY ve OpenSSH.

  • plinkve Pageant PuTTY'nin bir parçasıdır. sshKomut OpenSSH bir parçasıdır. Git tarafından hangi programın kullanıldığı belirsizdir; bunun için %GIT_SSH%ortam değişkenini kontrol etmeniz gerekir .

  • Programlar farklı ajan protokolleri kullanır; OpenSSH PuTTY'nin Pageant'ını kullanamaz; kendine ait ssh-agent(ne yazık ki Windows'ta kullanımı biraz karmaşık).

  • PuTTY ve plinkoturum ayarlarını PuTTY'nin arayüzünde düzenlenebilir kayıt defterinde saklayın. Hiçbir şey kullanmazlar ~/.ssh/; bu dizin yalnızca OpenSSH tarafından kullanılır.

  • OpenSSH ve PuTTY tarafından kullanılan özel anahtar biçimleri farklıdır; .ppkOpenSSH ile bir anahtar kullanamazsınız . Anahtarı PuTTYgen'de oluşturduysanız, "Dışa Aktar → OpenSSH" komutunu kullanmanız gerekir.

    $ ssh -vvvT git@github.com
    OpenSSH_4.6p1, OpenSSL 0.9.8e 23 Feb 2007
    ...
    debug2: key_type_from_name: unknown key type 'PuTTY-User-Key-File-2:'
    

Farkın farkındayım ve orijinal gönderide belirtildiği gibi git, yüklendiğinde plink kullanacak şekilde ayarlandı. Bu plink.exe işaret doğru ortam değişkeni değişti doğruladı. PuTTY tuşlarını kullanmak istiyorum (ve bu geçmişte işe yaradı!) Git ile birlikte kullanılmasına ve kullanılmasına rağmen kullanılmamasına rağmen garip ...
Radu

Esasen, şu anda OpenSSH anahtarlarıyla çalışabilirim, ancak PuTTY anahtarlarıyla çalışamam. PuTTY'yi yeniden yüklemeyi ve yeni anahtarlar oluşturmayı denedim. TTBu sorun gibi görünmüyor. Ne olabileceği hakkında fikri olan?
Radu

1
@Radu: plinkOpenSSH anahtar biçimini desteklemez. Sürümünüz plinkvarsa, kullanmıyorsunuz; başka bir şey.
Grawity

1
@Radu: Ayrıca, orijinal posta talebinizin tam tersini gösterir. Önce PuTTYgen ile bir anahtar oluşturmak ve gecesi için yüklemek, ancak daha sonra yapılandırmakta OpenSSH ile gitmek ve "şikayet sshPageant yüklenen rağmen geçiş ifade için istemleri". Sen edilmektedir iki program kafa karıştırıcı.
Grawity

Plink'in OpenSSH'yi desteklediğini asla söylemedim - Git Bash, varsayılan olarak OpenSSH kullandığından. Tekrar okumak, haklısın, söylediğin gibi, ~/.ssh/configPuTTY tarafından kullanılmadığı için bir şeyler karıştırıyorum . Bununla birlikte, GIT_SSH'nin plink'e işaret ettiğini tekrarlamak istiyorum ve yine de OpenSH için ssh yapılandırma dosyasını değiştirirsem, değişiklikler github'a bağlanmaya çalışırken Git Bash'e yansıtılır. Aslında, GIT_SSH ortam değişkeninin göz ardı edildiğine ve işletim sistemime özgü bir şey olduğuna inanıyorum. Yarın yeni bir imaj deneyeceğim.
Radu

20

PuTTY'nin SSH kimlik doğrulaması için Plink uygulamasını kullanarak Windows için Git kurulumunu almak için adım adım bir kılavuz hazırladım.

Aşağıdaki yolu takip edin:


Kurmak

  1. PuTTY İndirme Sayfasında bulunan putty.zip dosyasını yükleyin ya da tek tek indirebilirsiniz.

  2. RSA ve PPK Anahtarları Oluşturma

    1. Git Bash'i kullanarak ssh-keygenbir çift RSA genel / özel anahtarı oluşturmak için kullanın. Bunun nasıl yapılacağı hakkında daha fazla bilgi Resmi SSH anahtarları oluşturma makalesinde bulunabilir.
    2. PuTTYgen'de, mevcut ~/.ssh/id_rsa(özel) anahtarınızı Conversions→ aracılığıyla içe aktarın Import key.
    3. İçe aktarılan anahtarı Save private keydüğmesini kullanarak kaydedin ~/.ssh/id_rsa.ppk.
    4. Dizininizde şu anahtarlar bulunmalıdır ~/.ssh:

      • id_rsa: Özel (OpenSSH) RSA anahtarı
      • id_rsa.pub: Genel (OpenSSH) RSA anahtarı
      • id_rsa.ppk: Özel (PuTTY) anahtarı
  3. Windows için Git'i yükleyin .

    Plink'i kullanmayı seçtiğinizden emin olun.

    Git kurulumu

    Not: Git'i zaten yüklediyseniz, yükleyiciyi tekrar çalıştırabilir ve Plink'i varsayılan SSH uygulamanız olarak ayarlayabilirsiniz.

  4. Ortam yollarınızı ayarlayın.

    1. In Denetim Masası , Sistem görünüme gidin.
    2. Gelişmiş sistem ayarları'nı seçin .
    3. In Sistem Özellikleri penceresinde, tıklayın Gelişmiş sekmesini.
    4. Tıklayın Environment variables….
    5. Aşağıdaki Sistem değişkenlerini ekleyin (önceden ayarlanmamışsa):

      • GIT_HOME: C:\Program Files\Git
      • GIT_SSH: C:\Program Files (x86)\PuTTY\plink.exe
    6. Git ikili dizinini sistem yoluna ekleyin.

      • Path: %Path%;%GIT_HOME%\bin
  5. Pageant'ı açın ve konumunda bulunan ppk anahtarını yükleyin ~/.ssh/id_rsa.ppk.

    Not: Pageant başladıktan sonra, görev çubuğunda, saatin yanında, sağda bulunan sistem tepsisinde simgesine tıklayabilirsiniz.

  6. Putty'yi açın ve bağlantınızı SSH aracılığıyla test etmek için bağlanın ve sunucunun anahtarını bilinen bir ana bilgisayar olarak ekleyin.

    Macun

    Ana bilgisayar adlarına örnekler:

    • GitHub: git@github.com:22 (veya ssh-agent aracılığıyla ssh -Tv git@github.com)
    • BitBucket: git@bitbucket.org:22 (veya ssh-agent aracılığıyla ssh -Tv git@bitbucket.org)
  7. Git Bash'i başlatın.

    Her seferinde bir şifre girmeden uzak ana bilgisayarınızdan itip çekebilmeniz gerekir.


Kısayol

Windows hesabınıza her giriş yaptığınızda anahtarınızı otomatik olarak yüklemek için başlangıç ​​dizininize bir kısayol yerleştirebilirsiniz.

Toplu Komut Dosyası ile

Bu fikir, bu sorunun cevabından ilham aldı:

Süper Kullanıcı: CMD'den nasıl kısayol yapılır? .

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

Windows Gezgini ile

  1. Windows Gezgini'nde başlangıç ​​dizinine gidin.

    • Kullanıcı Startup/dizini (tercih edilen):

      %AppData%\Microsoft\Windows\Start Menu\Programs\Startup
      
    • Tüm Kullanıcılar Startup/dizini:

      %ProgramData%\Microsoft\Windows\Start Menu\Programs\Startup
      
  2. Klasörün içini sağ tıklayın ve NewShortcut

  3. In oluşturma Kısayol iletişim, aşağıdaki bilgileri girin.

    • Yer: "C:\Program Files (x86)\PuTTY\pageant.exe"
    • Ad: Pageant Autoload
  4. Yeni kısayolu sağ tıklayın Propertiesve içerik menüsünden seçim yapın .

  5. Kısayol sekmesi altındaki aşağıdaki alanları değiştirin :

    • Hedef: "%PROGRAMFILES(x86)%\PuTTY\pageant.exe" id_rsa.ppk
    • Başla: %USERPROFILE%\.ssh

     
    Notlar:

    1. 32 bit Windows işletim sistemi kullanıyorsanız, %PROGRAMFILES%bunun yerine ortam değişkenini kullanmalısınız %PROGRAMFILES(x86)%.

    2. Kısayolunuzu Tüm Kullanıcılar başlangıç ​​dizinine yerleştirdiyseniz, geçerli kullanıcının dizininde bir id_rsa.ppkanahtar olduğundan emin olun, ~/.sshaksi takdirde anahtar otomatik olarak yüklenmez.


Kapanış Konuşması

İşte aldın. Windows profilinizde bir sonraki oturum açışınızda, anahtarınızın parolasını girmeniz için bir Pageant istemiyle karşılaşacaksınız. Anahtarınızda bir parola ayarlamadıysanız, anahtarınız sorulmadan otomatik olarak yüklenmelidir.

Anahtar yüklendiğinizden emin değilseniz , sistem tepsisindeki Pageant için bağlam menüsünden Görünüm Tuşları'nı seçerek Pageant'taki geçerli anahtarları görüntüleyin .


3
Harika ayrıntılı talimatlar! Benden +1!
Pimp Juice IT

Puttygen'de özel anahtarı almak benim eksik bağlantımdı
Saurabh Kumar

Resimden kurulum sürecinde adımı etkinleştirmek için Putty'de bir bağlantı oluşturmak zorunda kaldım.
user46193

Fantastik! Gitlab.com ile ilgili bir similair sorunum vardı ve bu sorunu çözdü. Git macunu kullanıyordu, yüklediğim anahtar OpenSSH idi. Teşekkür ederim!
jgalak

4

Sade ingilizce

debug3: /c/Users/Radu/\.ssh\github.ppk bir RSA1 anahtar dosyası değil.

debug2: key_type_from_name: bilinmeyen anahtar türü 'PuTTY-Kullanıcı-Anahtar-Dosya-2

Puttygen farklı anahtarlar inşa edebilirsiniz, Github SSH1-RSA istiyor (?, Ben github Pageant ile ssh2 anahtarları kullanın )

ekler

Ayrıca , Github'daki sayfa gösterimi hatalarının ayıklanması ile ilgili bu gönderiye de bakın

>plink.exe -v -agent git@github.com
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

SSH1 kullanılmıyor ve çok sayıda güvenlik boşluğu var. Github kullanmaz.
Grawity

'Ssh -T git@github.com' ile eşdeğer olan bu, github howto belgelerinde ne yazık ki eksik. Gönderdiğiniz için teşekkürler.
Epu
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.