it-swarm.asia

Windows için Git'e özel RSA anahtarımı nerede bulacağımı nasıl söyleyebilirim?

Git kurulumum Linux'ta iyi çalışıyor, ancak Windows altında bir şeyler ayarlamaya çalıştığımda (Windows için Git kullanarak TortoiseGit ), özel SSH anahtarımı nereye koyacağımı bilmiyorum (veya daha iyi yine de ssh 'in nerede bulunduğunu söyleme). Windows için Git kurulumu sırasında standart ssh.exe seçeneğini kullanıyorum. Sunucuda parola kimlik doğrulamasına (RSA yerine) izin verirsem kurulum iyi çalışır.

503
binaryorganic

Git Bash için

Msysgit çalıştırıyorsanız (olduğunuzu varsayıyorum) ve Git Bash'i çalıştırmak istiyorsanız (TortoiseGit üzerinden öneriyorum, ancak şimdi GUI'den daha fazla CLI'ye yaslanıyorum), Git için ana dizininizin ne olduğunu bulmanız gerekiyor Bash'i başlatarak daha sonra pwd yazın (Windows 7'de sanırım C:\Users\phsr Gibi bir şey olacaktır). Git Bash'deyken mkdir .ssh Gerekir.

Giriş dizini ve bunun altında bir .ssh Klasörüne sahip olduktan sonra, PuTTYgen'i açmak ve daha önce oluşturduğunuz anahtarı (.ppk dosyası) açmak istersiniz. Anahtarınız açıldıktan sonra, Conversions -> Export OpenSSH key Öğesini seçmek ve HOME\.ssh\id_rsa İçine kaydetmek istersiniz. Anahtar bu konuma geldikten sonra Git Bash anahtarı tanır ve kullanır.

Not: Yorumlar, bunun her durumda çalışmadığını gösterir. OpenSSH anahtarını Program Files\Git\.ssh\id_rsa (Veya Program Files (x86)\Git\.ssh\id_rsa) öğesine kopyalamanız gerekebilir.

TortoiseGit için

TortoiseGit kullanırken, SSH anahtarını pacey'in yönleri aracılığıyla ayarlamanız gerekir. TortoiseGit'i kullandığınız her depo için bunu yapmanız gerekir.

493
Dan McClain

Windows için Git ile birlikte gelen yerleşik SSH istemcisini kullanarak, Git SSH istemcisinin anahtarı bulabilmesi için HOME ortam değişkenini ayarlamanız gerekir.

Örneğin, bir Windows Vista kurulumunda, setx HOME c:\Users\admin\ komut satırında.

Bu benim günümü yaptı ve özel anahtarınız şifre korumalı değilse Git ile ilgili sorunu düzeltti. Ssh-agent kullanmak istiyorsanız, muhtemelen ssh-agent cmd.exe'yi (bunu hiç yapmadım) ve ssh-add'i her zamanki gibi çalıştırabilirsiniz.

Tüm Git/SSH araçlarının bir pencereyi yanıp sönmemesi için bir cmd.exe'den çalıştırılması gerektiğini unutmayın.

Bu doğru şekilde çalışmazsa, plink kullanarak muhtemelen GIT_SSH ayarıyla elde edilebilir. Tüm SVN + ssh eğiticilerine bakın; Bu temelde kurulum yapmanız gereken aynı tesisattır.

108
Oct

TortoiseGit için anahtar konumu şu şekilde belirleyebilirsiniz:

  • Bir Gezgin Penceresi açın.
  • Bağlam menüsünü açın ve TortoiseGitAyarlar
  • Şimdi açılan pencerede GitRemote
  • İlgili giriş kutusunda PuTTY anahtarınızın yolunu ayarlayın.

Ekran görüntüsü aşağıdadır:

Enter image description here

57
pacey

Önceki cevapların hiçbiri benim için işe yaramadı. Sonunda benim için işe yarayan buydu. Ne yazacağınızı biliyorsanız, aslında oldukça basittir. PuTTY'ye ihtiyacı yok.

  • Git Bash İstemi'ni açma
  • 'Ssh-keygen' yazın
    • Varsayılan yeri kabul et
    • Boş bir parola seçin (bu yüzden tüm sorulara 'enter' tuşuna basın)
  • Şimdi ortak anahtarı sunucunuza kopyalayın, örneğin: scp ~/.ssh/id_rsa.pub [email protected]: ~

Bu, kendi bilgisayarınızda bitmiş. Şimdi hedef sunucuya ssh, ardından

mkdir -p ~/.ssh
cd ~/.ssh
cat ../id_rsa.pub >> authorized_keys
rm ../id_rsa.pub

Bu kadar! Sen bittin! Git Bash'ten test etmek için aşağıdakileri yapın:

ssh [email protected] ls

Git sunucusundaki ana dizininizdeki dosyaları listeliyorsa ve işiniz bitti!

GitHub için, sunucularına Shell erişiminiz yoktur, ancak anahtarı web sitelerini kullanarak yükleyebilirsiniz, böylece 'şimdi sunucunuza kopyalayın' biti için şunları yapın:

  • Git Bash'e 'cat ~/.ssh/id_rsa.pub' yazın, sonucu seçin ve panoya kopyalayın.
  • GitHub web sitesinde 'Hesap ayarları', 'SSH ve GPG anahtarları'na gidin,' Yeni SSH anahtarı'nı tıklayın ve anahtarı yapıştırın.
51
Hugh Perkins

Msysgit'i OpenSSH araçlarıyla kullanıyorsanız, ~/.ssh/id_rsa veya ~/.ssh/config anahtarınızı gösterir.

Bitbucket için doğru kullanıcı adını ve varsayılan anahtar dışında bir anahtarı kullanacak bir Git yapılandırması örneği (SSH bağlantıları için bir anahtarı ve Git hesapları için başka bir anahtarı korumanız durumunda).

~/.ssh/yapılandırma:

Host bitbucket.org
    Hostname bitbucket.org
    User git
    IdentityFile /C/keys/yourkey.key

Git Bash'e girdikten sonra, anahtarın şifresini tekrar tekrar yazmak zorunda kalmamak için anahtarınızı mevcut oturumunuzun ssh-agent'ına eklemek için iki komut çalıştırabilirsiniz.

eval `ssh-agent`
ssh-add /C/keys/yourkey.key
42
GregB

Az önce% HOME% =% HOMEPATH% ayarladım

Bu, sisteme giriş yapan tüm kullanıcılar için çalışma avantajına sahiptir (her biri ayrı .ssh klasörleri alır).

Vista'da:

  1. Bilgisayar'a sağ tıklayın
  2. Özellikler seçin
  3. Gelişmiş Sistem Ayarları'na tıklayın
  4. Ortam Değişkenleri'ne tıklayın
  5. Alt kısımda (Sistem Değişkenleri) Yeni'ye tıklayın
  6. Değişken adı türü için: HOME
  7. Değişken yol türü için:% HOMEPATH%
  8. Tamam'ı tıklayın
16
Jono

Benim durumumda Windows için Git'i windowsservercore Docker kapsayıcısında kullanıyordum.

Git'im Chocolatey - C:\Program Files\Git.

C:\Program Files\Git\etc\ssh\ssh_config Bununla:

Host example.com
   Identityfile ~/.ssh/id_rsa

Sonra C:\Users\<user>\.ssh\id_rsa

Windows için Git'i Windows için OpenSSH ile birlikte kullanıyorsanız. Git hala kendi ssh kullanıyor.

Artı ssh-keyscan Host.com > known_hosts OpenSSH'den, dikkatli olun çünkü stdout/keyscan (Windows'ta) kanal çıkışı UCS-2 olarak kodlamayı değiştirir, ancak OpenSSH yalnızca UTF-8 okuyabilir! Bu yüzden known_hosts dosya kodlaması.

9
oglop

Özel anahtarınızın iş istasyonunuzdaki SSH temsilcisine eklenmesi gerekir. Bunu nasıl başaracağınız, hangi git istemcisini kullandığınıza bağlı olabilir, ancak PuTTY ve ilişkili aracısı (pageant) sizin için hile yapabilir, burada resmi ikili dosyalara ve kaynaklara bağlantı:

http://www.chiark.greenend.org.uk/~sgtatham/PuTTY/download.html

7
Declan Shanaghy

Dosyalar için standart konum %USERPROFILE%\.ssh.

%USERPROFILE%, Unix'teki $ HOME eşdeğeridir (normalde c:\users\youruserid).

Standart komut satırı Unix stili araçlar olan Git ile gelen SSH araçlarını kullanıyorsanız, tüm kabuklarda ssh-agent ile çalışmak için benim komut dosyam gibi bir şey kullanabilirsiniz.

4
Eric Blade

En etkili yol Pageant kullanmaktır, çünkü parolayı her Push yerine oturumun başında yalnızca bir kez yazmanıza izin verir. Buradaki tüm cevaplar çok kısaydı, bu yüzden burada ayrıntılı bir rehber göndereceğim:

  1. PuTTY'nin web sitesinden pageant.exe, puttygen.exe, PuTTY.exe Ve plink.exe Yazılımlarını indirin. Bunları C:\puttyTools Dizinine yerleştirin.
  2. puttygen.exe Komutunu çalıştırın.
  3. Tıklama düğmesi Generate.
  4. Program sizden istediği gibi, ilerleme çubuğu dolana kadar fareyi pencerenin üst kısmında çevirin.
  5. Bir parola girin ve sonraki metin kutusunda tekrarlayın.
  6. "Özel anahtarı kaydet" i tıklayın. Bunları kaydetmek için olağan dizin %USERPROFILE%\_ssh (Bilgisayarımda bu C:\Users\andres\.ssh\ İle eşleşiyor). Anahtar dediğinizin bir önemi yok, ancak gösterim amaçlı olarak onu github.ppk Olarak adlandıracağım. Bu dosyanın uzantısı .ppk olmalıdır.
  7. PuTTYgen'deki üst metin kutusuna Public key for pasting into OpenSSH authorized_keys file Etiketli metni kopyalayın ve GitHub ayarlarında yeni bir SSH anahtarına yapıştırın. Anahtarın hangi makinede olduğunu açıklayan bir başlık verin (örneğin, "İş bilgisayarı").
  8. pageant.exe Komutunu çalıştırdığınızda yeni bir sistem simgesi görünecektir.
  9. Simgeye sağ tıklayın -> Anahtar ekle.
  10. Ppk dosyanızı bulun, parolanızı girin.
  11. Bu yeni kullanıcı ortamı değişkenlerini oluşturun (Edit environment variables for your account Bulabilecek WindowsMenu üzerinden Environ uygulamasını arayarak): GIT_SSH = "C:\puttyTools\plink.exe" Ve SVN_SSH = "C:\puttyTools\PuTTY\plink.exe"
  12. PuTTY.exe dosyasını açın ve Git depolarınızı Barındırdığınız Ana Bilgisayara bağlanmayı deneyin. Örneğin, github.com'a SSH aracılığıyla bağlanmayı deneyin; bir iletişim kutusu sunucunun parmak izini kabul edip etmediğinizi soracaktır: EVET'e tıklayın.
  13. MINGW64 Git konsolunuzun yeni bir örneğini çalıştırın ve env | grep -i ssh Komutunu yazarak ortam değişkenlerinin orada olduğunu doğrulayın.
  14. Tamamen hazır olmalısın. Ana Makinenizden Git + SSH protokolü ile klonlamaya çalışın.

(Başlangıçta birinde birleştirdiğim bu iki kılavuzdan çıkarılmıştır: Git Windows için nasıl kurulur ve MinGW-W64 + MSYS'yi PuTTY Plink/Pageant kullanacak şekilde yapılandırın.)

4
knocte

Tamam, ..

Ancak özel SSH anahtarlarımı ortak klasöre yerleştirmek iyi bir fikir olduğunu düşünmüyordum, bu yüzden bilinen ana bilgisayarın nerede olduğunu aramaya başladım.

Dolayısıyla, SSH anahtarınızı doğru bir şekilde korumak istiyorsanız, anahtarınızı aşağıdaki dizine koymanız gerekir:

Windows 7, 8 ve 8.1 32 bit için:

C:\Kullanıcılar \\ AppData\Local\VirtualStore\Program Dosyaları\Git \

Windows 7, 8 ve 8.1 64 bit için:

C:\Kullanıcılar \\ AppData\Local\VirtualStore\Program Dosyaları (x86)\Git \

Windows için GitHub ve Windows için Git GUI'yi karıştırırken, Git GUI'nin sizden bir kullanıcı adı ve şifre girmesini istediği sorunlarla karşılaşabilirsiniz. Bunun çaresi uzak URL'yi https: (Windows için GitHub'ın oluşturduğu şey) Git protokolüne. İçinde .git dizinini yapılandırma dosyasında bulabilirsiniz:

[remote "Origin"]
   url = https://github.com/**username**/**reponame**.git
   fetch = +refs/heads/*:refs/remotes/Origin/*

Bunu şu şekilde değiştirin:

[remote "Origin"]
    url = [email protected]:**username**/**reponame**.git
    fetch = +refs/heads/*:refs/remotes/Origin/*
3
IDisposable

Benzer sorunlar yaşadım ve buradaki cevapların hiçbiri sorunu çözmedi. Anlaşılan, anahtar çiftim başlangıçta boş bir parola ile oluşturuldu. (Biliyorum, aptal.)

Yeni bir anahtar çifti oluşturup ortak anahtarı GitHub'a yükledikten sonra, işler tekrar çalışmaya başladı.

2
Eric Cloninger

Yukarıdaki sorunu oluşturarak çözdüm

~/.Ssh/yapılandırma

dosya ve koy:

IdentityFile C:\Users\adria\.ssh\mysshkey
2
Adrian Onu

Pageant ( PuTTY paketi ile birlikte verilen bir SSH ajanı sorunu benim için çözer.

Başlat Menümün Başlangıç ​​klasöründe (C:\Users\owen.blacker\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup) "C:\Program Files (x86)\PuTTY\pageant.exe" "C:\Users\owen.blacker\Documents\SSH\OwenBlackerPersonal.ppk" "C:\Users\owen.blacker\Documents\SSH\OwenBlackerWork.ppk" 'e işaret eden bir kısayol var, böylece SSH anahtarlarımı başlangıçta yükler ve Git "sadece çalışır": o)

1
Owen Blacker

Aşağıdaki yanıt, Windows Hizmet Hesabı'ndan ssh çalıştırırken de bu soru için geçerlidir: SSH üzerinden Git ile Jenkins (Windows Hizmeti)

1
Alexander Pacha

Hem anahtar yolunu hem de anahtar dosyasının adını (Ubuntu'da) böyle belirtebilirsiniz. Örneğin:

ssh -i /home/joe/.ssh/eui_rsa
1
jim

Birçok cevap bunu söylüyor, ama benim için yeterince hızlı değil!

msys kullanan pencerelerde (standart windows konsolu) C:\Users\{you}\.ssh\id_rsa

Temelde yüklü anahtarları taramaya zahmet etmiyor (en azından yeni dizüstü bilgisayarımda değil) ve bu yüzden özellikle id_rsa

Bazı özel iş repo's = Ruby Windows 10 64-bit için MSYS CLI klonlamak isteyen bu karşılaştım

1
MrMesees

Git for Windows kullanıyorsanız, SSH anahtarları oluşturulduktan sonra SSH anahtarınızı ssh-agent'a eklemeniz gerekir.

Bkz. Yeni bir SSH anahtarı oluşturma ve ssh aracısına ekleme.

eval $(ssh-agent -s)

// Tell where the keys are located

ssh-add ~/.ssh/id_rsa
0
Matoeil

Declan'ın cevabına yaptığınız yorumu okurken, önce Komut İstemi komutunu açmayı deneyin (Başlat → Çalıştırcmd) ve sonra o git/bin klasörüne gidin ve ssh-keygen. Teorik olarak bu bir RSA anahtarı üretecek ve uygun dizine yerleştirecektir. O zaman bulmanız ve ortak anahtarınızı dünyayla paylaşmanız gerekiyor.

Pencerenin "yanıp sönmesinin" nedeni, Windows'un programı çalıştırmasıdır ve yürütüldüğünde, çıktıya gerçekten ihtiyacınız olduğunda, bununla işiniz bittiğini düşünerek Sor komutunu kapatır.

0
naydichev

Windows 7/8 kullanıyorsanız, C:\Users\Kullanıcı_Adınız_Adı.ssh dosyasına bakmanız gerekir. Id_rsa dosyanızı buraya kopyalayıp yapıştırmanız yeterlidir.

0
eeree

Windows'ta SSH kullanırken yaptığım bir hata, Git Bash istemcisi aracılığıyla anahtarları kullanmaya çalıştığımda, ~/.ssh içindeki tüm dosyaların yanlış izinler olmasıydı, ancak bana bunun bir sorun.

Bir test olarak, ~/.ssh dizininizdeki her şeyi chmod 600 olarak ayarladığınızdan emin olun.

0
Spedge

Ayrıca PuTTY Agent'ı (pageant) yükleyebilir ve sunucu için PuTTY ile oluşturduğunuz özel anahtarı ekleyebilirsiniz.

Git bunu tanır ve Push/pull için kullanır.

0
deepakkt

Windows makinesinde gerekli izinlere sahipseniz ve politikalarınız buna izin veriyorsa, özellikle Linux ile önceden deneyiminiz olduğunu göz önünde bulundurarak Cygwin ( https://cygwin.com/ ) yüklemenizi öneririm. Cygwin, ssh tuşlarınızı diğer Linux/Unix makinelerinde olduğu gibi işlemeyi mümkün kılacaktır. Ve Linux'un hemen hemen tüm cli araçlarına erişim sağlar.

0
torbenl

Gereksinime bağlı olarak Windows'da TortoiseGit ve Git Bash kullanıyordum. TortoiseGit'e her şeyi ekledim ve işe yaradı, ancak Git Bash, anahtarlar doğru dizinde olmasına rağmen onu almıyordu. Git Bash'ten bunu yapmak zorunda olduğum ortaya çıktı:

ssh-add C:\\Users\\<YOUR_USER>\\.ssh\\id_rsa

Tabii ki ayırıcı olarak \\ Kullanmayı hatırlayarak anahtarınızın bulunduğu yere giden yolu değiştirebilirsiniz.

0

Windows 7 sistemimde Git Gui userprofile/.ssh klasörü veya daha spesifik olarak c:/users/yourusername/.ssh/.

Kurulumumun zor kısmı, hostmonster'da paylaşılan Host'u anahtarı kabul etmekti. Çalışabilmemin tek yolu, anahtar çiftlerini (parola olmadan) oluşturmak için Git Gui'yi kullanmak ve daha sonra ortak anahtarı kontrol paneli, ssh, yönetmek tuşları aracılığıyla kopyalayıp yapıştırmaktı.

Başlangıçta, Git Gui'deki tuşları Yardım, SSH anahtarını göster, ardından Anahtar Üret menüsüne giderek oluşturmanız gerekir. Şimdi .ssh dizini. Aç .pub dosyasını açın ve içeriği kopyalayın.

Paylaşılan Ana Bilgisayardaki kontrol panelinize giriş yapın ve SSH , SSH anahtarlarını yönetin ve İçeri aktarma anahtarı). Genel kutusuna yapıştırın ve uzantı olmadan doğru adı adlandırdığınızdan emin olun - benimki id_rsa. Şimdi anahtarı yetkiyi yönet bağlantısını kullanarak yetkilendirmelisiniz, böylece authorized_keys dosya.

Artık Git Gui'niz ve Git Bash'iniz, şifreyi yazmak zorunda kalmadan SSH kullanarak Push yapabilmelidir. Garip bir şekilde, Git Bash ve Git Gui üzerinden SSH kullanarak Linux çalıştıran kendi sunucularımda iyi bir şekilde basabildim, bana uygun olan sadece paylaşılan barındırma idi. Umarım bu bana yardımcı olmak için saatler süren deneme yanılma süresine yardımcı olur - ve bu çok basit!

0
user228414

msysgit OpenSSL/Bash Git deneyimim (PuTTY'nin plink'i değil), .ssh/ Klasörünüzün arama sırasının aşağıdaki gibi olmasıdır.

  1. %HOME%/.ssh/
  2. %HOMEDRIVE%%HOMEPATH%/.ssh/
  3. %USERPROFILE%/.ssh/

Bu yüzden, neden bu kadar çok insan diğerlerinden biri beklediğiniz gibi değilse HOME ayarını öneriyor. Daha da önemlisi, kendiniz kontrol edebilirsiniz; hata ayıklamak için aşağıdaki gibi ortak anahtar kimlik doğrulamasını kullanan bir sunucuya ssh -v kullanın:

$ ssh -v [email protected]
OpenSSH_4.6p1, OpenSSL 0.9.8e 23 Feb 2007
debug1: Reading configuration data /d/.ssh/config
...
debug1: identity file /d/.ssh/identity type -1
debug1: identity file /d/.ssh/id_rsa type 1
debug1: identity file /d/.ssh/id_dsa type -1
...
debug1: Next authentication method: publickey
debug1: Trying private key: /d/.ssh/identity
debug1: Offering public key: /d/.ssh/id_rsa
..
Hi kcd83! You've successfully authenticated, but GitHub does not provide Shell access.

ssh belirsiz bir sürücü üzerinde arama yaptık ve önceki yanıtların hiçbiri ne gördüğümüzü açıklıyor gibiydi.

Bazen %HOMEDRIVE%%HOMEPATH%, H:/%USERPROFILE%/.ssh Ve C:/Users/Username/.ssh Olsa bile ve tuşları yerel olarak. %HOME% Öğesini %USERPROFILE% Olarak ayarlamak, uzaktaki ev sürücüsüne bakmasını durdurur.

0
KCD

Windows'ta Git Gui'nin v0.17'sini kullanarak Aşağıdaki menü komutunu tıkladım: Yardım SSH Anahtarını Göster.

OpenSSH Ortak Anahtarınız başlıklı bir iletişim kutusu görüntülendi. Bir anahtar oluşturdum ve panoya kopyaladım. Sonra githelp Üçüncü Adım sonrası setup-ssh talimatlarını izlemeye devam ettim. Daha sonra Git Gui GitHub ile sessizce iletişim kurdu - herhangi bir kimlik bilgisi girmeye gerek yok.

0
snow6oy

Windows 10 kullanarak, çalışan pageant oluşturulan SSH anahtarını çalıştıramadım (en azından komut satırında Git için SourceTree kullanarak bir sorunum yoktu):

git Push Origin master

Benim çözümüm:

  1. 'Git Bash'ı açtım
  2. Koştu

    ssh-keygen
    
  3. Onaylanmış anahtarlar artık mevcut

    ls ~/.ssh
    
  4. İd_rsa.pub Notepad ++ ile açıldı, tüm içerik seçildi

  5. Bitbucket'e yeni bir anahtar eklendi, https://bitbucket.org/account/user/myusername/ssh-keys/

  6. Anahtar alana etiketlenmiş ve yapıştırılmış içerik -> Anahtar Ekle

Bundan sonra Git komut satırı çalıştı. Görünüşe göre eski PEM formatını istiyor, çünkü bu anahtarı pageant'a aktarmaya çalışırsam çok şey söylüyor.

0
HostMyBus

TortoiseGit, bir havuzu klonlarken kullanılacak anahtarı belirlemenizi sağlar. "PuTTY Anahtarını Yükle" seçeneğini işaretlemeniz ve .ppk dosyası, ekran görüntüsünde olduğu gibi: https://i.stack.imgur.com/lAyzT.png

0
NGNeer

Windows için Git komut satırını kullanıyorsanız aşağıdakileri yapabilirsiniz:

cmd.exe ve setx HOME c:\PATH_TO_PRIVATE_KEY.

Yeni bir klasör oluşturun, .ssh, (yoksa) c:\PATH_TO_PRIVATE_KEY ve id_rsa dosyası (özel anahtarınız) içine.

Bitti. Artık Git komut satırını normal olarak kullanabilirsiniz.

0
duccom