Windows 10 SSH anahtarları


112

Windows 10'u yükledikten sonra SSH anahtarlarımı kurup çalıştırmakta gerçekten zorlanıyorum. Normal yöntem onu ​​oluşturmak ve .ssh altındaki kullanıcının hesabına atmaktır. Bu klasör, Windows 10'da mevcut görünmüyor.

Başka biri bununla karşılaştı mı? Farklı repolar için 3 SSH anahtarına ihtiyacım var ve bu beni gerçekten zorluyor.


2
Windows 10 nokta klasörlerini mi gizliyor?
Leland Barton

Hayır, ilk başta ben de öyle düşünmüştüm, ama kurulumdan beri birkaçını ekledi.
Rudenate3

2
Lütfen sorunuzu Süper Kullanıcıya taşıyın . Burada konu dışı .
Martin Prikryl

3
@MartinPrikryl Linux üzerinde çok fazla kodlama, Github vb. Kullanımı ssh ve .ssh anahtarlarını içerdiğinden, Stackoverflow için konunun çok yerinde olduğunu iddia ediyorum.
haziz

2
Martin'e katılıyorum. Bir programlama sorusu, bir programın yazılmasıyla ilgili bir sorudur, bir programcının sorabileceği herhangi bir soru değildir.
Bacon Bits

Yanıtlar:


131
  1. Windows komut satırını açın (arama kutusuna "cmd" yazın ve enter tuşuna basın).
  2. Varsayılan olarak ana klasörünüze ayarlanır, böylece cdfarklı bir klasör seçmenize gerek kalmaz .
  3. Tür ssh-keygen
  4. Talimatları izleyin ve gitmekte fayda var
  5. Ssh anahtarlarınız seçilen dizinde saklanmalıdır, varsayılan şudur: /c/Users/YourUserName/.ssh/id_rsa.pub

ps: Git'i bash entegrasyonu ile yüklediyseniz (benim gibi) ilk adımda "cmd" yerine "Git Bash" i açın


36
bu işe yaramaması dışında harika görünüyor. komut yokssh-keygen
roberto tomás

10
bazı nedenlerden dolayı ssh-keygenkomutu cmd kabuğu yerine git-bash kabuğunda çalıştırmak zorunda kaldım .
Olian04

6
Bunun için Git Bash sheel veya git cmd kullanabilirsiniz, Windows cmd kullanamazsınız.
Pavan T

6
Aralık 2018 itibariyle, benim için Win 10'da kutudan çıktı
Urs

1
@Suncatcher Evet. Github, DigitalOcean, vs.'de oturum açmak için aynı klasördeki "id_rsa.pub" içinde bulunan genel anahtara ihtiyacınız vardır. Not defteri gibi bir metin düzenleyiciyle açın ve SSH anahtarınızı eklemeniz gereken yere kopyalayıp yapıştırın.
Goose

57

2019-04-07 GÜNCELLEME: Bugün yeni bir Windows 10 sürümüyle test ettim (sürüm 1809, "2018 Ekim güncellemesi") ve yalnızca açık SSH istemcisi, zaten yüklü olduğu için artık beta sürümünde değil. Bu nedenle, yapmanız gereken tek şey anahtarı oluşturmak ve müşterinizi macun (pagent) yerine açık SSH kullanacak şekilde ayarlamaktır:

  1. komut istemini aç (cmd)
  2. girin ssh-keygenve enter'a basın
  3. tüm ayarlara girmek için enter tuşuna basın. şimdi anahtarınız c: \ Users \ .ssh \ id_rsa.pub klasörüne kaydedildi
  4. Git istemcinizi açın ve açık SSH kullanacak şekilde ayarlayın

Git Uzantıları ve Kaynak Ağacı üzerinde test ettim ve GitHub'daki kişisel depomla çalıştı. Daha eski bir Windows sürümündeyseniz veya SSH için bir grafik istemcisi tercih ediyorsanız, lütfen aşağıyı okuyun.

2018-06-04 UDPATE:

Windows 10'da, 1709 sürümünden başlayarak (kazan + R ve winveryapı numarasını bulmak için yazın ), Microsoft, OpenSSH istemcisi ve sunucusunun beta sürümünü yayınlamaktadır. Bir anahtar oluşturabilmek için OpenSSH sunucusunu kurmanız gerekir. Bunu yapmak için şu adımları izleyin:

  1. başlat menüsünü aç
  2. "İsteğe bağlı özellik" yazın
  3. "İsteğe bağlı bir özellik ekle" yi seçin
  4. "Özellik ekle" yi tıklayın
  5. "Açık SSH İstemcisi" ni kurun
  6. Bilgisayarı yeniden başlatın

Şimdi bir komut istemi açabilirsiniz ssh-keygenve istemci pencereler tarafından tanınacaktır. Bunu test etmedim. Windows 10'unuz yoksa veya betayı kullanmak istemiyorsanız, macunun nasıl kullanılacağına ilişkin aşağıdaki talimatları izleyin.


ssh-keygenWindows yüklü olarak gelmez. Putty ile bir ssh anahtarı nasıl oluşturulur:

  1. Macun yükleyin
  2. PuttyGen'i açın
  3. Anahtar türünü ve kullanılacak bayt sayısını kontrol edinPuttyGen parametreleri
  4. Fareyi ilerleme çubuğunun üzerine getirin fare girişi ile anahtar oluşturma
  5. Artık bir parola tanımlayabilir ve genel ve özel anahtarları kaydedebilirsiniz anahtar oluşturulmuş iletişim kutusu

Openssh anahtarları için birkaç adım daha gereklidir:

  1. metni "yapıştırmak için genel anahtar" metin kutusundan kopyalayın ve "id_rsa.pub" olarak kaydedin
  2. Özel anahtarı openssh formatında kaydetmek için, Dönüşümler-> OpenSSH anahtarını dışa aktar'a gidin (bir şifre tanımlamadıysanız, sizden bir şifre istemediğinizi onaylamanızı isteyecektir) anahtarı OpenSSH formatına dönüştürmek için menü
  3. "İd_rsa" olarak kaydedin

Artık anahtarlar kaydedildi. Başlangıç pagentve özel anahtar orada (Putty en formatında PPK dosyası) eklemek sayfa tuşları iletişim kutusu

pagentKimlik doğrulamanın çalışması için çalışıyor olması gerektiğini unutmayın


6
ssh-keygen "İsteğe Bağlı Özellikleri Yönet" bölümünde Windows 10'da yer alıyor, hangi sürümün olduğundan emin değil
sebbu

1
@sebbu Aslında, Şimdi Windows 10'da "İsteğe Bağlı Özellikleri Yönet" bölümünde Açık SSH Sunucusunun bir beta sürümünü kurabilirsiniz ve bu size ssh-keygen'i birkaç başka şeyle birlikte alacaktır. Ancak yüklü gelmez ve bulunması tam olarak kolay değildir. Cevabımı güncelleyeceğim.
franksands

1
@KarlMorrison sayfası, ssh kimlik doğrulamasını gerçekleştiren kullanıcı arabirimidir. genellikle başlangıç ​​menüsünde bulunur.
franksands

1
Açık SSH Sunucusunu kurmanıza gerek yoktur. Open SSH Client özelliği ssh-keygen içerir.
Onots

1
@Onots, Windows 10'un (2018 Ekim güncellemesi) yeni bir sürümüyle test ettim ve sadece açık ssh istemcisi yeterli değil, zaten yüklü olarak geliyor: D Cevabımı güncelleyeceğim
franksands

31

WINDOWS: Windows için git yüklüyse klasörüne gidin.

görüntü açıklamasını buraya girin

Bin dizinine bakın. Bir sh.exe dosyası var. Çalıştır şunu.

görüntü açıklamasını buraya girin

Ardından şunu yazın:

ssh-keygen -t rsa -C "e-postanız buraya"

Talimatları izleyin ve ardından şunu yazın:

kedi ~ / .ssh / id_rsa.pub | klips

Anahtarı panonuza kopyalar. Artık bu genel anahtarı sunucu tarafına yapıştırabilirsiniz.


13
  1. Windows komut satırını açın (arama kutusuna "cmd" yazın ve enter tuşuna basın).
  2. Varsayılan olarak ana klasörünüze ayarlanır, böylece cdfarklı bir klasör seçmenize gerek kalmaz .
  3. Tür mkdir .ssh

9

Uyarı: Anahtarlarınızı C: /User/username/.ssh (varsayılan yer) altına kaydediyorsanız , anahtarlarınızı bir yere yedeklediğinizden emin olun (örneğin, parola yöneticiniz).

En son Windows 10 Güncellemesinden (sürüm 1607) sonra .ssh klasörüm boştu. Anahtarlarımın her zaman olduğu yer burasıdır, ancak Windows güncelleme sırasında bunları silmeye karar verdi.

Neyse ki anahtarlarımı yedekledim ... Ama ... Bahse girerim bazı insanlar bugün bilgisayarlarını geri alacaklar.


Peki çoğu uygulama anahtarlarınızı nerede saklamanızı bekliyor?
wcochran

3
muhtemelen Windows 10'u yükseltirken pencerelerin rastgele sildiği klasörde mi?
Andrew

8

Microsoft Windows 10 Pro, Sürüm 10.0.17763 Yapı 17763 çalıştırıyorum ve .ssh klasörümü izinleri veya herhangi bir şeyi düzenlemek zorunda kalmadan C: \ Users \ jrosario \ .ssh'de kolayca görüyorum (ancak Dosya Gezgini'nde seçtim "Gizli dosyaları, klasörleri ve sürücüleri göster"): görüntü açıklamasını buraya girin

Anahtarlar, kabaca şuna benzer bilinen_hosts adlı bir metin dosyasında saklanır: görüntü açıklamasını buraya girin


5

Windows 10'da, açıklanan rotayı kullanarak dosyaları yalnızca ssh-keygen oluşturucusunda belirtilmeyen dosya adları varsa klasöre yazdığına dair dikkate değer bir istisna buldum .

özel bir anahtar adı verilmesi, RSA genel ve özel anahtarlarını içeren dosyaların klasöre yazılmamasına neden oldu.

  • Windows komut satırını açın
  • Tür ssh-keygen
  • Dosya adını boş bırakın, sadece return tuşuna basın,
  • Parolanızı ayarlayın
  • Anahtar dosyalarınızı oluşturun. Şimdi var olacaklar. ve depolanacakc:/Users/YourUserName/.ssh/

( Yönetici Komut Satırı ve Windows 10 Pro kullanarak )


@Braineeee negatif. Bu olacak DEĞİL tuşları anda bu tuşlara üzerine yazmak isterseniz o soracaktır Komut satırı Window daha sonra hedefte var ise, anahtarlarını üzerine yazılır. Aynı klasördeki diğer anahtarlar etkilenmez . Yorumunuzu okuduktan sonra bir test çalıştırması yaptım ve bunun böyle olduğunu anladım.
Martin

Nedenini hiç çözdün mü?
Damainman

@Damainman maalesef bunu daha fazla keşfetme şansım olmadı, bu yüzden hayır:-/
Martin

1
Teşekkürler @Martin günümü kurtardın. Farklı isimli dosyaları oluşturabiliyorum. Yol ayırıcıyı unix şeklinde sağlamalıyız! Aşağıdakiler benim için çalıştı. ssh-keygen -t ed25519 -C "Github Anahtarım" Anahtarın kaydedileceği dosyayı girin (C: \ Users \ bilix / .ssh / id_ed25519): c: \ users \ bilix \ .ssh \ id_ed25519_github
Prakash P

@PrakashP yardımcı olmaktan mutluluk duyar!
Martin

4

Özel / genel anahtar oluşturun:

  1. Açık bir terminal ( git bash, PowerShell, cmd.exevs.)
  2. Yazın ssh-keygen
  3. Varsayılan dosya kaydetmek için enter'a basın ( ~/.ssh/id_rsa)
  4. Varsayılan parola için enter tuşuna basın (parola yok)
  5. Tekrar enter tuşuna basın
  6. Çıkışta Bakış ve emin olun RSAolduğu 3072veya yukarıdaki

Şimdi bir özel / genel anahtar çifti oluşturdunuz.

GIT için anahtarın gücü 2048olmalı, kullanıcılar .sshdizininde bulunmalı id_rsave ve çağrılmalıdır id_rsa.pub. Anahtarları herhangi bir yere yapıştırırken, VIM gibi yeni satırlar eklemeyen bir program kullandığınızdan emin olun.


2

Zaten yönetici olmama ve el ile dizin oluşturabilmeme rağmen nihayet "Yönetici Çalıştır" komut satırını açarak çalıştırdım.


1

OpenSSH istemcisi ile Windows 10'unuz varsa, anahtarı oluşturabilirsiniz, ancak ssh-copy-id komutu istemci araç setinin bir parçası olmadığından, anahtarı hedef Linux kutusuna kopyalamakta sorun yaşarsınız.

Bu sorunu yaşadıktan sonra, profilinize eklediğiniz bu sorunu çözmek için küçük bir PowerShell işlevi yazdım.

function ssh-copy-id([string]$userAtMachine, [string]$port = 22) {   
    # Get the generated public key
    $key = "$ENV:USERPROFILE" + "/.ssh/id_rsa.pub"
    # Verify that it exists
    if (!(Test-Path "$key")) {
        # Alert user
        Write-Error "ERROR: '$key' does not exist!"            
    }
    else {  
        # Copy the public key across
        & cat "$key" | ssh $userAtMachine -p $port "umask 077; test -d .ssh || mkdir .ssh ; cat >> .ssh/authorized_keys || exit 1"      
    }
}

Burada özü öğrenebilirsiniz

Burada kısa bir yazım var


0

Ayrıca, deneyebilirsiniz (Windows 10 Pro için) Powershell'i yönetici olarak çalıştırıp şunu yazabilirsiniz: ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

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.