Soru Git için Windows'a özel RSA anahtarımı nerede bulacağımı nasıl anlarım?


Git kurulumum Linux üzerinde iyi çalışır, ancak Windows altında bir şeyler ayarlamaya çalıştığımda (Windows için Git ve TortoiseGit), Özel SSH anahtarımı nereye koyacağımı bilmiyorum (ya da daha iyisi, nasıl söylenir ssh bulunduğu yer). Windows için Git kurulumu sırasında standart ssh.exe seçeneğini kullanıyorum. Sunucuda parola doğrulaması (RSA yerine) izin verirseniz, kurulum iyi çalışır.


464
2017-10-25 16:45


Menşei


Aynı sorunu yaşıyorum, "Git Windows" ile yüklü olan "Git Bash" programını kullanarak "kök" olarak bir ortak anahtar kullanarak dev kutusu içine ssh olabilir ama ben ile "git" olarak oturum açamıyorum anahtarım "authorized_keys" dosyasını "root" sayfamdan "git" kullanıcımdan kopyalamam ve sahipleri ve izinleri doğru bir şekilde ayarlamam bile. "Root" aynı "authorized_keys" dosyasıyla çalışırken neden "git" olarak giriş yapamıyorum. Bunun yerine "git" için, "root" ile çalışan ve bir parola isteyen tam olarak aynı olan tüm özel anahtarları geçirir. Bu arada bir Centos 5.5 sunucusu. - Jarrod Roberson
@fuzzy lollipop: Git kullanıcınızın yetkili_trosya dosyasında doğru izinleriniz var mı? Chmod 600 olmalı ve git kullanıcısına ait olmalıdır. Kök kullanıcı tarafından sahip olunan, işe yaramazsa - Dan McClain
evet tüm dosyalar ve dizinler doğru sahipler ve izinlerdir - Jarrod Roberson


Cevaplar:


Git Bash için

Eğer msysgit'i çalıştırıyorsanız (ve varsayalım) ve Git Bash'ı çalıştırıyorsanız (TortoiseGit üzerinden tavsiye ederim, ama şimdi GUI'den çok GUI'ye eğiyorum), ev dizininizin Git için ne olduğunu bulmanız gerekir. Başlayarak Bash yazın pwd (Windows 7'de, böyle bir şey olacak C:\Users\phsr Bence). Git Bash'deyken mkdir .ssh.

Ana dizininiz var ve .ssh Bunun altında, PuTTYgen'i açmak ve daha önce oluşturduğunuz anahtarı (.ppk dosyası) açmak istersiniz. Anahtarınız açık olduğunda, seçmek istersiniz Conversions -> Export OpenSSH key ve kaydetmek HOME\.ssh\id_rsa. Bu konumda anahtarı aldıktan sonra Git Bash anahtarı tanıyacak ve kullanacaktır.

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

Tortoise için

TortoiseGit kullanırken, SSH anahtarını pacey nasıl gidilir?. TortoiseGit ile kullandığınız her depo için bunu yapmanız gerekir.


462
2017-11-05 17:18



pacey'nin tortoisegit talimatları, depoya sahip oluncaya kadar çalışmayacaktır (çünkü bir 'repo'dayken' uzak 'konfigürasyon ayarı görünmüyor) ve eğer muhtemelen' ilk etapta deposu bulamıyorsanız ' orijinden klonlanmak için kendinizi doğrulayın. Zor! - Kylotan
GitBash ile bulduğum kopyasını kopyalamak zorunda kaldım ~/.ssh/id_rsa dosyaya Program Files\Git\.ssh\id_rsa - Bu biraz kafa karıştırıcıydı, ancak şimdi IntelliJ ve Windows cmd anahtar kimlik doğrulaması kullanan git depolarına gidebilir. - JP.
Aynı şekilde. Ben sadece windows için kurdum, bunu cmd.exe'den çalıştırıyorum. Dosyaları koymam gerekiyordu. id_rsa ve id_rsa.pub içine c:\program files (x86)\Git\.ssh . .ssh dir zaten mevcuttu. Sağol, JP. - Cheeso
İkinci paragraf altındır. :) - Bjørn
@Damon: Olmalı id_rsa uzantısı olmadan. Bu dosya adı, bir dizin değil - Dan McClain


Windows için Git ile birlikte gönderilen yerleşik SSH istemcisini kullanarak, HOME ortam değişkenini ayarlamanız gerekir, böylece Git SSH istemcisi anahtarı bulabilir.

Örneğin, bir Windows Vista kurulum, bu ihraç ederek yapılacak setx HOME c:\Users\admin\ komut satırında.

Özel anahtarınızın şifre korumalı olmaması koşuluyla günümü kurdu ve sorunu Git ile düzeltdi. Eğer ssh-agent kullanmak istiyorsanız, muhtemelen ssh-agent cmd.exe'yi (bunu hiç yapmadım) ve her zamanki gibi ssh-add'i çalıştırabilirsiniz.

Tüm Git / SSH araçlarının bir cmd.exe aracından çalıştırılmaması gerektiğini unutmayın. goz kirpmak bir pencere.

Bu düzgün çalışmıyorsa, plink kullanarak muhtemelen tweaking tarafından elde edilebilir GIT_SSH. Tüm SVN + ssh eğitimlerine bakın; Bu temelde kurmanız gereken aynı tesisattır.


101
2017-11-05 18:24



Windows komut istemini kullanmaya çalıştığımdan beri aradığım şey, git bash değil. - John Ruiz
Güzel, kolay düzeltme ama bu olmadan anlamaya zor olurdu! - thaddeusmt
HOME = ve c: \ ... arasında hiçbir boşluk olmaması önemlidir. Eki çözüm benim için hile yaptı. :-) - Lutz
setx HOME c:\Users\admin` command doesn't seems to be working in Git Bash. You have to use yerine cmd`. - trejder
+1 GIT_SSH=c:\pathto\plink.exe - Nick Grealy


TortoiseGit için anahtar konumunu şu şekilde belirtebilirsiniz:

  • Bir Explorer Penceresi açın.
  • Contextmenu açın ve gidin TortoiseGit → Ayarlar
  • Şu anda açılan pencerede, Git → uzak
  • İlgili giriş kutusuna PuTTY anahtarınızın yolunu ayarlayın.

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

Enter image description here


48
2017-11-05 14:07



Ek olarak, özel anahtarınızı diğer biçimlerden '.ppk' biçimine dönüştürmeniz gerekiyorsa BU - Tariq M Nasim
Benim için çalıştı. - Maxim Eliseev
Git> Uzak, yalnızca depoyu başarıyla klonladıktan sonra görünür. - Steve Pitchers
Çok daha kolay bir çözüm, herşeyi git (openSSH kullanarak) içinde düzgün bir şekilde ayarlamak ve TortoiseGit'e git tarafından kullanılan ssh.exe'yi kullanmasını söylemek. Görmek stackoverflow.com/a/33328628/318317 Bu şekilde, bunu yalnızca bir kez düzeltmeniz gerekir. - Daniel Rose


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

  • Git Bash istemi açın
  • 'Ssh-keygen' yazın
    • Varsayılan konumu kabul et
    • Boş bir şifre seç (bu yüzden sadece 'tüm sorulara' girin 'tuşuna basın)
  • Şimdi ortak anahtarı sunucunuza kopyalayın, örneğin: scp ~ / .ssh / id_rsa.pub someuser@someserver.com: ~

Bu kendi bilgisayarında bitiyor. şimdi ssh hedef sunucuya, sonra

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 someuser@someserver.com ls

Git sunucusundaki giriş dizininizdeki dosyaları listelerse ve işiniz bittiyse!

GitHub için sunucularına kabuk erişiminiz yoktur, ancak web sitesini kullanarak anahtarı yükleyebilirsiniz, böylece 'artık sunucunuza kopyalayın' için aşağıdakileri yapın:

  • Git Bash'de 'cat ~ / .ssh / id_rsa.pub' yazıp sonucu seçin ve panoya kopyalayın.
  • GitHub web sitesinde, 'Hesap ayarları', 'SSH ve GPG tuşları' bölümüne gidin, 'Yeni SSH anahtarı' üzerine tıklayın ve anahtarı yapıştırın.

45
2018-04-25 01:32



Anahtar kelimeler olmadan anahtarlar oluşturmayın. Bu, şifrenizi bir metin dosyasına koymak gibidir, ancak herkes özel anahtarların varsayılan konumunu bilir. - GregB
Yanlış soruyu cevaplıyorsun. Q, varolan bir özel anahtara nasıl işaret edilir. - Orangutech
@GregB, şu şekilde gözüküyorum: Şifresiz bir anahtar oluşturduğum herhangi bir sunucu, dizüstü bilgisayarım kadar güvenlidir, bu da dizüstü bilgisayarımın güvenlik alanının bir uzantısıdır. Aslında, hatta, benim ev dizini şifreli beri ;-) Yani, benim düşünceme, github erişimini sağlamak için 'yeterince iyi' olan benim laptop, şifreli ev bölümü kadar güvenli. (Bu sizin fikrinizden farklılık gösterebilir!) - Hugh Perkins
@GregB Paranoyaya düşme! :] Parola korumalı anahtarlar kullanmak parolasız kullanımdan çok daha güvenlidir, ancak parolasız anahtarın bir metin dosyasında parola saklamak kadar kolay kırıldığını iddia etmek açık bir yanlıştır. Kullanıcıları parola korumalı anahtarlar kullanmaya teşvik eden çok sayıda kılavuz gördüm. Ancak hiçbir zaman, hiçbir parola olmadan bunları kullanmanın güvenli olmadığını görüyorum. Ayrıca, bazı sistemler, anahtarın şifresini hatırlamak için kullanıcılar tarafından girilen çözümleri desteklemez ve her zaman anahtarı kullanılır. Bu, SSH anahtarlarını bu durumda anlamsız kılar. - trejder
Orijinal sorudan sapan konuşmanın iyiliği için, SSH anahtarları kesinlikle şifrelere göre daha kriptografik olarak güvenlidir, ancak SSH anahtarlarınızı şifrelememek suretiyle bu güvenlik riski ortaya çıkar. Kişisel yaklaşımım, bir SSH ajanı kullanarak anahtarların kilidini açmaktır, bu da şifrelenmiş anahtarları hafızada tutar, böylece gün boyunca şifreyi tekrar girmem gerekmez. @Hugh Perkins'in yorumunda bulunduğum gibi, ve ben de her şeyi tekrar ediyorum, hepiniz güvenlik gereksinimlerinizi I / We'den daha iyi biliyorsunuz :). - GregB


OpenSSH araçlarıyla msysgit kullanıyorsanız, ~/.ssh/id_rsaveya bir Git yapılandırması oluşturun. ~/.ssh/config anahtarınızı işaret eder.

Burada, Bitbucket için doğru kullanıcı adını kullanacak olan bir Git yapılandırması ve varsayılan anahtardan başka bir anahtar (SSH bağlantıları için bir tuşa sahip olmanız ve Git hesapları için başka bir tuşa sahip olmanız durumunda) örneği verilmiştir.

~ / .Ssh / yapılandırma:

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

Git Bash uygulamasında, anahtarınızın parolasını tekrar tekrar yazmak zorunda kalmamak için anahtarınızı geçerli oturumunuzun ssh-agent'ına eklemek için iki komut çalıştırabilirsiniz.

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

34
2018-04-11 06:34



Bunu yaptım ama github.com için: Host github.com IdentityFile ~ / .ssh / github_rsa - Sarah Vessels
Yolunuzda bir alanınız varsa teklifleri kullanmak zorundasınız: IdentityFile "/ C / My Keys / key" - r03
Ben bu yolu tercih ederim, çünkü bu bana diğer PC'den mevcut anahtarları hızlı bir şekilde bağladı - Kirill Gusyatin
.Gitconfig bölümlerim var. Bu evsahipleri hangi bölümlere koymalıyım? - Steve Yakovenko


Az önce% HOME% =% HOMEPATH% ayarlıyorum

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

Vista'da:

  1. Bilgisayarı sağ tıklayın
  2. Özellikleri Seç
  3. Gelişmiş Sistem Ayarlarına tıklayın
  4. Ortam Değişkenlerine tıklayın
  5. Alt kısımda (Sistem Değişkenleri) Yeni'ye tıklayın
  6. Değişken isim tipi için: HOME
  7. Değişken yol tipi için:% HOMEPATH%
  8. Tamam'a tıklayın

14
2017-10-12 01:26



Benim durumumda HOME =% USERPROFILE% ekledim - igor
Bunu not et %HOMEPATH% sürücü harfini içermez, bu nedenle kaynağınız açık değilse C: hazırlamanız gerekiyor C: için %HOME%. - Graeme Perrow


Özel anahtarınızın iş istasyonunuzdaki SSH aracısına eklenmesi gerekir. Bunu nasıl elde edeceğiniz, git istemcinin ne olduğuna bağlı olabilir, ancak puTTY ve onunla ilişkili aracı (yarışmacı) sizin için hile yapabilir, burada resmi ikili dosyalara ve kaynağa bağlantı vardır:

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


7
2017-10-25 17:38



Yukarıda Windows için kullanıyorum ve macun yerine ssh.exe (paketlenmiş w / git) kullanıyorum yukarıda belirttim. Özel bir anahtar eklemek için bazı standart uygulamalar olmalı, nasıl olduğunu anlayamıyorum. Yazılım geçişi gerçekten oturum açmama izin verirken, standart Git kurulumu ile bunu yapmanın bir yolu olmalı, değil mi? - binaryorganic
Üzgünüm, windows üzerinde çalışmaz, sadece linux. Ama anahtarın SSH ajanınızda olması gerekiyor. Bir agent.exe veya bu satırlardaki bir şey var mı? - Declan Shanaghy
Evet, kurulum linux tarafında kek oldu. Ama ne yazık ki Windows üzerinde çalışmam lazım. Windows kutusunda git / bin klasöründe birkaç ssh ile ilgili yürütülebilir dosyalar vardır (ssh, ssh-add, ssh-agent, ssh-keygen & ssh-keyscan), ancak bunlardan herhangi birini nasıl yapacağımı bilmiyorum birşeyler yap. Sadece bir cmd penceresini açıp hemen kapatıyorlar. Şoktayım. - binaryorganic
Pageant gerçekten benim için sorunu çözüyor - Benim Start Menu's Startup klasöründe bir kısayol var (C:\Users\owen.blacker\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup) işaret ediyor "C:\Program Files (x86)\PuTTY\pageant.exe" "C:\Users\owen.blacker\Documents\SSH\OwenBlackerPersonal.ppk" "C:\Users\owen.blacker\Documents\SSH\OwenBlackerWork.ppk"Böylece, SSH anahtarlarımı başlangıçta yükler ve bu da GIT'i "sadece çalışır" hale getirir: o) - Owen Blacker
@OwenBlacker OMFG! Sen kesinlikle yapmalı Bu yorumu tam boy olarak yaz Cevap! Bu burada tek çözümAslında bu bana yardım etti ve problemimi çözdü! Yazık, sana sadece + 1 verebiliyorum! :] - trejder


Tamam, öneriye baktım ..

Ama özel SSH anahtarlarımın umumi klasöre yerleştirilmesinin iyi bir fikir olduğunu düşünmüyorum, bu yüzden tanınmış olanın nerede olduğunu aramaya başladım.

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: \ Users \\ AppData \ Local \ VirtualStore \ Program Dosyaları (x86) \ Git \


4
2017-09-08 10:04



Merhaba Bas. Sanırım sorunuzu silmeli ve sormalısınız ya da vermelisiniz Süper Kullanıcı çünkü bu soru / cevap :-) için yanlış site - Ian Macintosh
Ben sadece sugestion benim quistion değil - Bas van den Dikkenberg
Bu Win7 makinemdeki en basit çözümdü. Senin gibi aradım known_hosts. Tabii ki, oldu C:\Users\Dave\AppData\Local\VirtualStore\Program Files (x86)\Git\.ssh. Anahtar dizini (id_rsa) bu dizine yerleştirerek, ssh şikayeti bulamadı. Biraz okuma yaptım - Windows (eski) yazılımın yasak bölgelere ("C: \ Program Files \" gibi) yazmaya çalıştığı yönündedir, bu yüzden Git'in ssh'i VirtualStore dizinine yazmanın tamamen farkında değildir. bunu şeffaf olarak ele alıyor. En azından bu dosyalar bir kullanıcıya ait! - DaveGauer


Benim durumumda Docker kabında Windows için Git kullanıyordum windowsservercore.

Gitim tarafından yüklendi chocolatey için C:\Program Files\Git.

Dosyayı güncellemeliydim C:\Program Files\Git\etc\ssh\ssh_config Bununla:

Host example.com
   Identityfile ~/.ssh/id_rsa

Sonra anahtarını kullanabilirdim. C:\Users\<user>\.ssh\id_rsa

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

Artı kullanmayı planlıyorsanız ssh-keyscan host.com > known_hosts OpenSSH'den dikkatli olun, çünkü çıkış boruları stdout arasında keyscan (Windows'ta) kodlamayı UCS-2'ye değiştirir, ancak OpenSSH sadece UTF-8 okuyabilir! Yani değiştirdiğinizden emin olun. known_hosts dosya kodlaması.


4
2017-11-02 15:27



Bu yardımcı oldu, ancak bir id_dsa anahtarı kullanan herkes için, ev sahibi altında "PubkeyAcceptedKeyTypes ssh-dss" eklemeniz gerekir. - Michael Russo