SSH Anahtarı - Hala şifre ve parola sorma


495

Bir depoyu klonlarken Github'a her zaman kullanıcı adımı ve şifremi soran bir şekilde 'uydurdum'. Bu adımı atlamak istiyorum çünkü iş akışımdaki bir sıkıntı.

Bu kılavuzu kullanarak (başarıyla yaptım) bir SSH anahtarı kurmayı denedim. https://help.github.com/articles/generating-ssh-keys ve başarılı oldum.

Benim sorunum hala bir depo klonlarken (SSH kullanarak) github şifremi ve parolam isteniyor olmasıdır. Anladığım kadarıyla, bu SSH anahtarını ayarladıktan sonra artık bunu yapmak zorunda kalmayacaktım.

Ne soracağımdan biraz emin değilim, bu yüzden sadece amacımı belirteceğim.

Her zaman Github bilgilerimi koymak zorunda kalmadan depoları klonlamak istiyorum .

SSH anahtarımda ne eksik? Herkes rehberlik veya kaynak sağlayabilirse takdir ediyorum, çünkü GitHub'da SSH kimlik doğrulaması söz konusu olduğunda her zaman biraz kaybolmuştum.

Bildiğim kadarıyla, işlerin düzgün çalışıp çalışmadığını test eden bir komut, işte benim konsolumdan çıktı:

~ $ ssh -T git@github.com
Saving password to keychain failed
Enter passphrase for key '/Users/MYNAME/.ssh/id_rsa':
Hi MYNAME! You've successfully authenticated, but GitHub does not provide shell access.

Parolamı girdiğimde, önce başarısız olur mu? Sonra, parolamı girdiğimde geçer.


1
Hangi işletim sistemindesiniz? Modern bir Linux Masaüstü, parolanızı bir anahtarlık yöneticisinde saklamayı önerir. Mac OS X ile aynıdır. Windows'ta kullanabileceğiniz bir pageantparçasıdır putty. Tüm bunlarda amaç aynıdır: PC'nizi başlattıktan sonra parolayı yalnızca bir kez girersiniz, anahtar yöneticisi aracıları siz yeniden başlatana kadar sonraki kullanımlarda ssh'ye geçirir.
janos


2
Burada partiye biraz geç kaldım, ancak github'daki küçük klon sekmesinde / düğmesinde "SSH Kullan" yazan bir bağlantı var. Bunu yapmak istiyorsun. Klon bağlantınızı "git @ github: username / project.git" olarak değiştirir. Github'a bir SSH anahtarı eklediyseniz ve yerel olarak ssh-agent üzerinde çalışmasını sağladıysanız, bir kullanıcı adı veya şifre girmeden zorlayabilmeniz gerekir.
Logan Kitchen

Yanıtlar:


201

Eğer çalışıyorsanız HTTPsURL'ler, her zaman adınızı / şifrenizi sorarız.

SSHUzaktan kumandaları klonlarken / ayarlarken doğru şekilde kullanıyorsanız . Ardından, şifrenizi hatırlamak için bir ssh-aracısına sahip olduğunuzdan emin olun. Bu şekilde, parolanızı terminal oturumuyla yalnızca bir kez girersiniz.

Hala çok can sıkıcıysa, parola olmadan bir ssh anahtarı ayarlayın.


2
cevap için teşekkürler. Her zaman sadece HTTP kullandım. SSH kimlik doğrulaması yapmaya çalışıyorum ve kurduğumu düşündüm. Ssh-agent yüklemem gereken git dışında bir şey mi? Teşekkürler
HelloWorld

1
@ R11G yapamazsınız, aksi takdirde şifreler güvenli olmaz ... Sadece yeni bir şifre oluşturun.
Simon Boudrias

50
Sadece parola ifadelerinin özel anahtarınızı şifrelemek için kullanıldığını belirtmek isterim, bu yüzden bir parola kullanmazsanız, özel anahtarınız makinenizde şifrelenmeyecektir. Bilgisayarınızda bulunan bir metin dosyasına şifre bırakmak gibidir.

2
Komik, HTTPS depolarım asla şifre sormaz ve SSH depolarım her zaman yapar.
Adam

33
Uzaktan kumandanın URL'sini https'den ssh'ye dönüştürmek için bu github belgesine bakın . Uzaktan kumandanın URL'sinin ssh veya https olup olmadığını kontrol etmek için kullanın git remote -v. git remote set-url origin git@github.com:USERNAME/REPOSITORY.git
Https'den ssh'ye

824

Anahtarlık Olmadan Kimlik Ekleme

Parolanın anahtar zincirinde saklanmasını istemediğiniz, ancak parolayı tekrar tekrar girmek istemediğiniz zamanlar olabilir.

Bunu şu şekilde yapabilirsiniz:

ssh-add ~/.ssh/id_rsa 

Bu sizden parolayı soracak, girecek ve siz yeniden başlatana kadar bir daha sormayacaktır.

Anahtarlık Kullanarak Kimlik Ekleme

@Dennis yorumlarda belirttiği gibi, anahtar zincirinizde saklayarak parolayı yeniden başlatma yoluyla sürdürmek için, böyle bir kimlik eklerken -K( -kUbuntu için) seçeneğini kullanabilirsiniz :

ssh-add -K ~/.ssh/id_rsa

Bir kez daha, bu sizden parola isteyecek, girecek ve bu sefer bir daha asla bu kimliği istemeyecek.


178
Bunun yeniden başlatmalarda kimliğini sürdürmeyeceğini unutmayın. -KParolayı eklerken anahtarlığınızda saklama seçeneğini kullanabilirsiniz , örn.ssh-add -K ~/.ssh/id_rsa
Dennis

29
-kbenim için küçük harf ... (Linux Mint / Ubuntu 14.04 base) ama evet! sonunda bunu sıraladı ...
Louis Maddox

8
sadece "ssh-add" komutunu çalıştırıp şifreyi bir kez girin, komut satırı sizden şifreyi tekrar istemeyecektir.
AVINASH SHRIMALI

14
Herhangi bir tartışmaya ihtiyacınız yok; sadece çalıştırıldığında ssh-addotomatik olarak eklenir ~/.ssh/id_rsa(diğer dosyaların yanı sıra). Çıktıyı göndermek için hiçbir neden yok /dev/null; ne yaptığının raporunu görmek çok daha iyi.
Ted Hopp

6
Neden "Kimlik doğrulama aracınızla bağlantı kurulamadı?"
dokaspar

251

Mac OSX'te özel anahtarınızı şu komutu kullanarak anahtarlığa ekleyebilirsiniz:

ssh-add -K /path/to/private_key

Özel anahtarınız ~ / .ssh dizininde depolanmışsa ve id_rsa olarak adlandırılmışsa:

ssh-add -K ~/.ssh/id_rsa

Daha sonra, anahtarlığınızda saklanacak olan şifrenizi girmeniz istenecektir.

Düzenle - Yeniden başlatmayı işleme

Yeniden başlattıktan sonra bile parolanızı doldurmak zorunda kalmamak için aşağıdakileri ssh yapılandırma dosyanıza ekleyin (genellikle ~ / .ssh / config adresinde bulunur)

Host *
  UseKeychain yes
  AddKeysToAgent yes
  IdentityFile ~/.ssh/id_rsa

7
Benim durumumda, yine yeniden başlatmadan sonra parolayı soruyor (macOS Sierrra 10.12.2). Bunu çözmek için herhangi bir fikir var mı?
inigo333

9
Boşver, sorunu yeni buldum. Mac OS X 10.12'den ssh-agent'ın başlatma sırasında anahtarlığa otomatik olarak parola yüklemediği bir hata (özellik?). github.com/lionheart/openradar-mirror/issues/15361
inigo333

2
@ inigo333 ilginç. Sadece kendimi güncelledim ve fark ettim!
Groot

1
@Groot, BTW, diğer yanıtlarda önerildiği gibi "~ / .ssh / config" e "Host * UseKeychain yes" ekleyerek sorunu giderir.
inigo333

1
Bu kabul edilen cevap olmalı. Özel yapılandırma dosyası~/.ssh
Xavi

186

Burada tüm cevapları denedim ve bu cevapların hiçbiri işe yaramadı ! Mac'imin oturumları / yeniden başlatılması arasında şifrem devam etmeyecekti.

Okumayı öğrendim Ne bu OpenRadar ve bu Heyecan tartışma oldu Elma bilerek davranışı değişti artık otomatik bir önceki SSH anahtarlarını yüklemek hayır MacOS 10.12 Sierra ssh-agent için. El Cap ile aynı davranışı sürdürmek için aşağıdakileri yaptım:

  1. ssh-add -K ~/.ssh/id_rsa
    Not: id_rsa anahtarınızın bulunduğu yolu değiştirin.
  2. ssh-add -A
  3. Aşağıdaki ~/.ssh/configdosyayı oluşturun (veya varsa düzenleyin) :

    Host *
      UseKeychain yes
      AddKeysToAgent yes
      IdentityFile ~/.ssh/id_rsa
    

Ve şimdi şifrem Mac bilgisayarımın yeniden başlatılması arasında hatırlanıyor!


2
Bu, github veya osx dokümantasyon sayfalarına eklemek için faydalı bir şey olabilir . Mac'imin neden 10.11 çalıştığını ve diğer 10.12 çalışmasının farklı davrandığını anlamanın en zor zamanı vardı.
Grr

5
Bir OSX yükseltmesinden sonra bana oldu, teşekkürler ( ssh-add -Asadece bir anahtarınız varsa gerekli değildir ~/.ssh/id_rsa)
Dorian

1
Bu inanılmaz faydalı bir cevap. Teşekkürler, benim günümü yaptın.
Jan Nash

2
Ekim 2017 itibarıyla, macOS 10.12 veya daha yenisini kullanıyorsanız bu cevap tam olarak aradığınız şeydir.
brogramcı

3
Ve bu şimdi github belgelerinde: help.github.com/articles/…
Todd Price

35

Anahtarın parolasını kaldırabilirsiniz

$ ssh-keygen -p [-P old_passphrase] [-N new_passphrase] [-f keyfile]

ya da koşabilirsin

$ ssh-keygen -p

keyfile için bir bilgi istemi alırsınız. Varsayılan olarak ~/.ssh/id_rsaenter tuşuna basın

Geçerli geçiş ifadesini girmeniz istenir.

Sonra yeni şifre için bir istem olacak, enter tuşuna basın


Bu, anahtar parolasına parola eklemek için neredeyse aynı cevapların çoğundan daha yüksek olmalıdır. Genel anahtarımı bir yöneticiye vermek zorunda kaldım ve her seferinde yazmak için can sıkıcı bir parola ekledim. Bu, makinenin üzerinde fazla denetime (yok temiz bir çözümdür -K, -k, -Abenim için işe yaramadı).
gwg

1
Bu tek şey yeniden başlatmaya kadar benim için çalıştı, bütün ssh-add -K, -k vb komutlar benim için hiçbir şey yapmadı.
Amalgovinus

28

Sadece aşağıdaki komutu çalıştırın:

ssh-add -K

Bir daha asla şifreyi girmenizi istemez.


3
Bu harika çalışıyor, ancak rastgele bir komut çalıştırma konusunda biraz endişeliydim. Ancak, dokümanlar ssh-addyalnızca "kimlik doğrulama aracısına özel anahtar kimlikleri ekler" -Kseçeneğini işaretlerseniz ve seçenek bunu "Kimlik eklerken, her parola kullanıcının anahtar zincirinde de saklanır."
machineghost

8
Aslında, ben yeniden başlatana kadar düzeltti :(
machineghost

5
Windows için bash kabuğunda "-k" bayrağı küçük harf olmalıdır. Just FYI
Fergus

27

Deponuz için ssh kullandığınızdan emin olun

mahtab@mahtab-Lenovo-G50-70:~/my-projects/jenkins-cje-2017$ git remote -v origin git@github.com:eMahtab/jenkins-cje-2017.git (fetch) origin git@github.com:eMahtab/jenkins-cje-2017.git (push)

resim açıklamasını buraya girin

Https kullanmayın, uzaktan kumandanız https kullanıyorsa, ortak anahtarı Github'a eklediyseniz ve ssh-agent'a özel anahtar ekleseniz bile, şifre sormaya devam edecektir. Aşağıda her zaman şifre istenecek

mahtab@mahtab-Lenovo-G50-70:~/my-projects/jenkins-cje-2017$ git remote -v origin https://github.com/eMahtab/jenkins-cje-2017.git (fetch) origin https://github.com/eMahtab/jenkins-cje-2017.git (push)


Evet, iki uzak URL türü arasında ayrım yapmak benim için yararlı oldu. Bu bakımından bana yardımcı oldu git pullve git push. URL'imi HTTPS türünden SSH türüne değiştirdim ve işe yaradı - git pullşifre sormayı durdurdu.
Michael R

1
Anahtarlama şu komutla yapılabilir:git remote set-url origin git@github.com:USERNAME/REPOSITORY.git
guido

17

Yürütmek zorunda kaldım:

eval `ssh-agent -s`
ssh-add

Not : Her yeniden başlatmadan sonra bunu tekrar yapmanız gerekecektir. Bundan kaçınmak istiyorsanız, " .bashrc " dosyanıza girin .C:\Users\<<USERNAME>>\.bashrc pencerelerde . Muhtemelen gizlidir, bu nedenle gizli dosyaları görebildiğinizden emin olun.

Çözüm burada bulundu .


15

Pencereler kullanıyorsanız, bu benim için çalıştı:

eval `ssh-agent -s`
ssh-add ~/.ssh/*_rsa

İkinci komutta parola isteyecek ve hepsi bu.


1
Oturumu kapatıp yeniden kaydettiğinizde her seferinde şifreyi yeniden girmeniz gerekir.
trainoasis


11

Bir ssh aracısı kullanmanız gerekir.
TL; DR : Terminali aç & dene

ssh-add

itmeden önce. İstendiğinde parolanızı girin.

Orijinal StackExchange cevabını buradan inceleyin


6

Kısa bir süre önce macOS Mojave'ye geçtim ve homebrew aracılığıyla bazı araçlar yükledim ssh-add; Benim varsayılan sürümü ssh-add vermedi sahip -Kseçeneği. Bu, aşağıdaki hataya yol açtı:

# ssh-add: illegal option -- K

Hangi sürümünüzü ssh-addçalıştırarak görebilirsiniz which ssh-add.

(Benimki depolandı /usr/local/bin/ssh-add)

Bunu düzeltmek için anahtarı Apple'ın sürümüne işaret etmek zorunda kaldım :

/usr/bin/ssh-add -K ~/.ssh/id_rsa

Daha sonra Git / GitHub mükemmel çalıştı. Daha fazla bilgi için, bkz. Hata: ssh-add: illegal seçenek - K


High Sierra 10.13.6 ile iMac'te de aynı sorun vardı - bu benim için çalıştı. Teşekkürler!
emccracken

Benimki iyi çalışıyordu ve rastgele tekrar parola istemeye başladı - yakın zamanda yapılan bir güncellemeden sonra olabilir. Bu düzeltildi! Teşekkürler
mc01

5

Mac OSX Sierra için, Open Radar'ın github sayısında önerilen düzeltmelerin sorunumu çözdüğünü buldum. Görünüşe göre Sierra varsayılan davranışı değiştirdi (yükseltmeden sonra bu sorunu yaşamaya başladım).

Bu özellikle yararlı buldum: https://github.com/lionheart/openradar-mirror/issues/15361#issuecomment-249059061

ssh-add -A 

Kimliğim sonuçlandı Bu, ajan eklenen sonra ben koştu

ssh-add -K {/path/to/key}

Özetlemek gerekirse, OSX.12'de:

ssh-add -K {/path/to/key}
ssh-add -A 

aşağıdakilerle sonuçlanmalıdır:

Identity added: {/path/to/file} ({/path/to/file})

EDIT: Bir dahaki sefere tam bir yeniden başlatma (ajan durdu ve yeniden başlatıldı aka) bu artık işe yaramadı fark ettim. Daha eksiksiz çözüm @ChrisJF'in yukarıda bahsettiği şeydir: bir ~/.ssh/configdosya oluşturmak . İşte benim çıktı:

$ cat ~/.ssh/config
Host *
  UseKeychain yes
  AddKeysToAgent yes
  IdentityFile ~/.ssh/id_rsa

İstediğiniz kadar giriş ekleyebilirsiniz IdentityFile, ancak bu varsayılan kurulumdur. Bu, yukarıdaki openradar bağlantısı ATM'nin de "trend" yanıtıdır.


Düzenlenen soru sorunumu çözdü. MacOS Mojave 10.14.3
Jose

4

LinuxMint / Ubuntu'da çalıştı

Aşağıdaki adımları uygulayın

Aşama 1:

Dosyaya git => /.ssh/config

Aşağıdaki satırları dosyaya kaydedin

Host bitbucket.org
    HostName bitbucket.org
    User git
    IdentityFile /home/apple/myssh-privatekey
    AddKeysToAgent yes

Bu satırı eklemeyi unutmayın AddKeysToAgent evet

Adım 2:

Terminali açın ve tuş takımını ssh- add'e ekleyin

$ ssh-add -k /home/apple/myssh-privatekey

parolayı girin.


3

Zaten bir parola ayarlamıştım ama bir nedenden dolayı artık onu tanımayacaktı. Bu yüzden kimlik dosyasını tekrar kullanarak anahtar zincirime ekledim ve ssh-add -Kşifremi sormayı bıraktı.


bu yalnızca anahtarları yükler ve sertifikaları değil
numediaweb

3

Benim için işe yarayan buydu:

git config --global core.sshCommand "'C:\Windows\System32\OpenSSH\ssh.exe'"

2

Sorun, SSH'den değil HTTPS'den klonladığınızdan kaynaklanıyor gibi görünüyor. Diğer tüm çözümleri burada denedim ama hala problemler yaşıyordum. Bu benim için yaptı.

osxkeychain helperBenzer şekilde kullanarak :

  1. Yüklü olup olmadığını öğrenin.

    git credential-osxkeychain

  2. Yüklü değilse, Xcode Komut Satırı Araçları'nın bir parçası olarak indirmeniz istenir.

  3. Yüklü ise Git'e osxkeychain helperglobal credential.helperyapılandırmayı kullanarak kullanmasını söyleyin :

    git config --global credential.helper osxkeychain

Bir sonraki HTTPS URL'sini klonladığınızda kullanıcı adı / şifre girmeniz ve OSX anahtarlığına erişim izni vermeniz istenir. Bunu ilk kez yaptıktan sonra, anahtarlığınıza kaydedilmelidir ve tekrar yazmak zorunda kalmazsınız.


2

Bu yanıt öncelikle Windows kullanıcıları içindir ve diğer işletim sistemlerinde tfs, github veya gitlab ile klonlamada sorun yaşıyorsanız da aynı derecede önemlidir.

SSH kullanılırken varsayılan kimlik doğrulama modu özel anahtardır. Bu herhangi bir nedenle başarısız olursa, ssh-agent kullanıcı adı ve parola tabanlı kimlik doğrulamasına geri döner.

Varsayılan anahtar tabanlı kimlik doğrulamasının başarısız olmasının birkaç nedeni olabilir. En yaygın durumlar şunlardır:

a) ssh aracısı , id_rsa olan varsayılan özel anahtar dosyasını bulamıyor açıkça başka bir anahtar yolu belirtilmez.

b) Sunucuda saklanan ortak anahtar yanlış.

c) Klonlamaya çalıştığınız yol yanlış.

Her durumda, sorunu gidermek için öncelikle git clone komutunu komutla ayrıntılı günlük kaydıyla yürütün:

GIT_TRACE=1 GIT_SSH_COMMAND="ssh -vvv" git clone ssh://pathToYourRepo

Sorunun ne olabileceğine dair bir sezgi almak için günlükteki her adımı uygulayabilirsiniz.


(A) durumunda sorun giderme

  • .Ssh dizininde id_rsa varsayılan anahtar adına sahip olduğunuzdan emin olun. Ssh-keygen komutuyla anahtarı oluştururken farklı bir anahtar adı belirtmiş olabilirsiniz veya hiç anahtar yoktur).
  • Kimlik doğrulama için farklı bir anahtar belirtmek istiyorsanız, aşağıdaki komutu kullanın:

    ssh-agent bash -c 'ssh-add ~/.ssh/anotherKey; git clone ssh://pathToYourRepo'
    

(B) durumunda sorun giderme

  • Ortak anahtarı sunucuda saklarken fazladan beyaz boşluk olmadığından emin olun.

(C) durumunda sorun giderme

  • Havuz yolunun https sürümüyle klonlamaya çalışmadığınızdan emin olun.

1

Git için ssh url kullanıyorsanız, ssh için parola istendiğinde, kullanıcı adını " git " ve parolayı sisteminizin oturum açma parolası olarak girin


Havuz uzak URL türünü olarak HTTPSdeğiştirmek SSHsorunumu çözdü. Teşekkürler @MichaelR, makaleniz gerçekten yardımcı oldu, ancak ondan bir şey okumadım: D
Geradlus_RU

1

Hala IdentitiesOnly'yi evet olarak ayarladıkları için şifreyi hala girmesi gerekenler için bir cevap eklemek istiyorum. Bunun nedeni, git veya sunucu için anahtarlar olmak üzere birden çok anahtar ve kimlik dosyası olabilir.

Anahtarı oluşturduktan ve sunucuya kopyaladıktan sonra:

ssh-keygen
ssh-copy-id -i ~/.ssh/12gpu_server.pub lerner@192.168.20.160

Ben işe yaramadı buldum.

Sonra ~/.ssh/configdosyayı kontrol etmeye gittim , bunu altta gördüm:

Host *
IdentitiesOnly yes

Sonra ben yukarıda ekleyin:

Host 12gpu
HostName 192.168.20.160
User lerner
IdentityFile ~/.ssh/12gpu_server

Sadece girerek giriş yapabilirim ssh 12gpu.

Ardından, favori adlarınızı kullanarak birden fazla ssh anahtarı ekleyebilirsiniz ve yapılandırma dosyasına yalnızca yukarıdaki dört satır gibi ayarları eklemeniz gerekir.

Ana makine , sunucuya daha sonra bağlandığınızda girmek istediğiniz addır; AnaBilgisayarAdı github.com gibi sunucunun ip veya alan; Kullanıcı , sunucuda oturum açtığınız kullanıcı adı veya github veya gitlab için git gibi kullanıcı adıdır; ve IdentityFile , oluşturduğunuz anahtarı sakladığınız dosyadır.


1

Genel olarak, ssh kullanarak şifresiz olarak sunucunuza uzaktan bağlantı kurmanıza izin veren adımlar şunlardır:

  • Bir çift rsa özel ve genel anahtarı oluşturun

    $ ssh-keygen -t rsa -b 4096 -C "your comments"
    
  • Genel anahtarınızı kopyalayın ve uzak sunucunuza giriş yapın

  • Genel anahtarınızı .ssh / yetkili_anahtarlara ekleyin

  • Bilgisayarınızda birden fazla ssh anahtarı varsa, ssh-add komutunu kullanarak anahtarınızı ekleyebilirsiniz.

    $ ssh-add /path/to/private/key

  • Sonra sunucunuza ssh deneyin

    $ ssh username@your_ip_address

Kaynak: http://diary-of-programmer.blogspot.com/2018/08/tips-how-to-ssh-to-your-digitalocean.html



0

Eğer varsa Windows ve GIT kullanarak üçüncü parti araçları olmadan ve anahtar olduğunu güvenli olmayan bir şifre / parola kullanımıyla bu:

  1. Ortam Değişkeni HOME kullanıcı profilinize ayarlanmalıdır (örn. C: \ Kullanıcılar \ Dizüstü Bilgisayar)
  2. C: \ Users \ Laptop \ .ssh \ klasörüne gidin ve "config" dosyasını düzenleyin (veya dosyayı oluşturun!) Örnek: C: \ Users \ Laptop.ssh ​​\ config (not: sonunda hiç yok!)
  3. Git-server ana makinenizi şu şekilde "config" dosyasına ekleyin:

    #Example host entry
    Host myhostname.com
        HostName myhostname.com
        User git
        IdentityFile c:/users/laptop/.ssh/id_rsa.pub
        PasswordAuthentication no
        Port 422
    
  4. Dosyayı kaydedin ve depoyu şu şekilde klonlayın:

    git clone ssh: //myhostname.com/git-server/repos/picalc.git

"Config" dosya ana bilgisayar girdisi için ek yapılandırma parametreleri kullanabilirsiniz. Bunlar yerel git yükleme klasörünüzde bulunabilir, örn. " C: \ Program Files \ Git \ etc \ ssh \ ssh_config ". Alıntı:

# Host *
#   ForwardAgent no
#   ForwardX11 no
#   RhostsRSAAuthentication no
#   RSAAuthentication yes
#   PasswordAuthentication yes
#   HostbasedAuthentication no
#   GSSAPIAuthentication no
#   GSSAPIDelegateCredentials no
#   BatchMode no
#   CheckHostIP yes
#   AddressFamily any
#   ConnectTimeout 0
#   StrictHostKeyChecking ask
#   IdentityFile ~/.ssh/identity
#   IdentityFile ~/.ssh/id_rsa
#   IdentityFile ~/.ssh/id_dsa
#   IdentityFile ~/.ssh/id_ecdsa
#   IdentityFile ~/.ssh/id_ed25519
#   Port 22
#   Protocol 2
#   Cipher 3des
#   Ciphers aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc
#   MACs hmac-md5,hmac-sha1,umac-64@openssh.com,hmac-ripemd160
#   EscapeChar ~
#   Tunnel no
#   TunnelDevice any:any
#   PermitLocalCommand no
#   VisualHostKey no
#   ProxyCommand ssh -q -W %h:%p gateway.example.com
#   RekeyLimit 1G 1h

0

Benim için aynı sorun ve çözüm şuydu:

Uzaktan kumandanın URL'sini https'den ssh'ye dönüştürmek için bu github belgesine bakın. Uzaktan kumandanın URL'sinin ssh veya https olup olmadığını kontrol etmek için git remote -v kullanın. Https'den ssh'ye geçmek için: git remote set-url origin git@github.com: USERNAME / REPOSITORY.git @jeeYem


0

Mobaxterme bunun için bir UI arayüzüne sahipti

setting > configuration > SSH > SSH Agent > [check] Use internal SSH agent "moboAgent" > add [your id_rsa and restart mobaxterme to set changes]


0

SSH Anahtarı - Hala şifre ve parola sorma

Windows'da ve SSH anahtar üreteci olarak PuTTY kullanılıyorsa , bu hızlı ve kolay çözüm, düz bir windows komut satırı kullanarak benim için tek çalışan çözüm olarak ortaya çıktı:

  1. PuTTY kurulumunuz diğerlerinin yanı sıra birkaç yürütülebilir dosya ile birlikte gelmelidir pageant.exeveplink.exe
  2. PuttyGen ile bir SSH anahtarı oluştururken, anahtar .ppkuzantıyla birlikte depolanır
  3. Run "full\path\to\your\pageant.exe" "full\path\to\your\key.ppk"( gerekir verilemeyecek). Bu, pageanthizmeti yürütecek ve anahtarınızı kaydedecektir (şifreyi girdikten sonra).
  4. Ortam değişkenini ayarlayın GIT_SSH=full\path\to\plink.exe( alıntı yapılmamalıdır ). Bu, git ssh-iletişim ile ilgili komutları plink, pageanthizmeti tekrar parola sormadan kimlik doğrulama için kullanacak şekilde yönlendirir .

Bitti!

Not1: Bu belge , GIT_SHHortam değişkeni ayarlarıyla çalışırken bazı özellikler konusunda uyarır . Ben can push, pull, fetchek komuta parametre ve her şeyin herhangi bir sayı ile (oradaki önerildiği gibi ekstra bir senaryo yazmaya gerek kalmadan) benim için sadece para cezası çalışır.

Not2: İnstalasyon yolu PuTTYgenellikle içerisindedir, PATHbu nedenle atlanabilir. Her neyse, tam yolları belirtmeyi tercih ediyorum.

Otomasyon:

Aşağıdaki toplu iş dosyası git komut satırından kullanılmadan önce çalıştırılabilir. Ayarların kullanımını gösterir:

git-init.bat
   @ECHO OFF
   :: Use start since the call is blocking
   START "%ProgramFiles%\PuTTY\pageant.exe" "%HOMEDRIVE%%HOMEPATH%\.ssh\id_ed00000.ppk"
   SET GIT_SSH=%ProgramFiles%\PuTTY\plink.exe

Neyse, ben GIT_SSHdeğişken set var SystemPropertiesAdvanced.exe > Environment variablesve pageant.exeeklenen olarakRun kayıt defteri anahtarı (*) .

(*) RunKayıt defteri anahtarı ekleme adımları >

  1. Çalıştırmak regedit.exe
  2. Şu yöne rotayı ayarla HKEY_CURRENT_USER > Software > Microsoft > Windows > CurrentVersion > Run
  3. Yap (menü) Edit > New > String Value
  4. Rasgele (ancak benzersiz) bir ad girin
  5. Yap (menü) Edit > Modify...(veya çift tıklama)
  6. İçin tırnak kapalı yolu girin pageant.exeve public key, örneğin, "C:\Program Files\PuTTY\pageant.exe" "C:\Users\username\.ssh\id_ed00000.ppk"(bildirisini %ProgramFiles%vb değişkenler seçiminde sürece burada çalışma yok Expandable string valueyerine String value3. adımda).


-1

Sanırım sudo bangbang'ın cevabı kabul edilmelidir.

Ssh anahtarı oluşturduğunuzda, parola yapılandırmanızı istediğinde parolanızı yazmayı atlamak için "Enter" tuşuna basmanız yeterlidir.

Bu, ssh anahtarını kullanırken bir parola GEREKMEZ anlamına gelir, bu yüzden ssh anahtarı oluştururken unutmayın, parola girmeyin, atlamak için sadece 'Enter'a basın.


1
Bu çok kötü bir öneridir. Bkz user456814 yorumuna @
Sos
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.