Git neden Windows altındaki parolamı hatırlamıyor


144

Sadece git kullanmaya başladım ve parolamı hatırlamak için alamıyorum cmd.exe yükseltilmiş kullanıyorum ve git ana bilgisayar github ve github bu kılavuz gibi bir ssh anahtarı oluşturduk

ama hala alıyorum

*\subnus.mvc>git push origin master
Enter passphrase for key '/c/Users/Subnus/.ssh/id_rsa':

Kendimi msysgit kullanmadım, ancak pageant kimlik doğrulama aracı yardımcı olabilir .
Cebjyre

1
Her şeyi denedim ve sonra buldum bu çalıştığı.
Blake Niemyjski

1
Windows 10 bir süredir OpenSSH ile birlikte geliyor. Ssh-agent hizmetini etkinleştirin, anahtarınızı ssh deposuna eklemek için ssh-add komutunu kullanın ve GIT_SSHortamınıza ayarlayın (gerekirse) ve git / ssh ssh-agent ile parolanızı hatırlar. Daha ayrıntılı talimatlar için aşağıdaki cevabıma bakın.
d3r3kk

1
2019, Windows 10'a git yüklü ve git bir kez şifre ister ve hatırlar.
Jean-François Fabre

@ Jean-FrançoisFabre OpenSSL kullanmıyor olabilirsiniz.
RoadRunner

Yanıtlar:


206

Bu sorunun iki yaşında geldiğini anlıyorum, ancak aynı sorunu yaşadım ve burada birkaç cevap benim için soruyu tamamen cevaplamadı. İşte msysgit'e ek olarak TortoiseGit kullanıp kullanmadığınıza bağlı olarak iki adım adım çözüm.

İlk çözüm Windows, msysgit ve PuTTY olduğunu varsayar.

  1. Msysgit ve PuTTY yazılımını talimatlara uygun olarak kurun.
  2. (İsteğe bağlı) Yolunuza PuTTY ekleyin. (Bunu yapmazsanız, aşağıdaki PuTTY komutlarına yapılan tüm başvuruların önüne, uygun yürütülebilir dosyanın tam yolu eklenmelidir.)
  3. Henüz yapmadıysanız, GitHub'da veya Git ana bilgisayarınız tarafından belirtildiği gibi bir anahtar karması oluşturun.
  4. Şimdiye kadar yapmadıysanız Yine, PuTTY en pageant.exe kullanarak kullanılmak üzere anahtarınızı dönüştürmek PuTTYgen.exe yürütülebilir dosyasını . Talimatlar PuTTY'nin belgelerinde, bu yardımcı kılavuzda ve siber uzayda birkaç yerde bulunmaktadır.
  5. PuTTY's pageant.exe dosyasını çalıştırın , .ppk dosyanızı açın ("Anahtar Ekle") ve anahtarınız için parolanızı girin.
  6. Windows'un ortam değişkenleri iletişim kutusuna erişin ("Bilgisayar" ı sağ tıklayın, "Özellikler" i tıklayın, "Gelişmiş sistem ayarları" veya "Gelişmiş" sekmesini tıklayın, "Ortam Değişkenleri" ni tıklayın). Aşağıdaki ortam değişkenini ekleyin:

    GIT_SSH = C: \ tam \ yol \ etmek \ plink.exe

    "C: \ full \ path \ to" yerine, plink.exe'nin bulunduğu PuTTY'nin tam yükleme yolu ile değiştirin. "Kullanıcı değişkenleri" bölümüne eklemek en iyisidir. Ayrıca, plink.exe için kullandığınız yolun Pageant (pageant.exe) için kullandığınız yolla eşleştiğinden emin olun. Bazı durumlarda, diğer uygulamalarla birlikte yüklenebileceği için birkaç PuTTY kurulumuna sahip olabilirsiniz. Bir kurulumdan plink.exe ve başka bir kurulumdan pageant.exe kullanmak muhtemelen sorun yaratacaktır.

  7. Bir komut istemi açın.

  8. Github.com'da barındırılan bir git deposuna bağlanmaya çalışıyorsanız, aşağıdaki komutu çalıştırın:

    plink.exe git@github.com

    Bağlanmaya çalıştığınız git deposu başka bir yerde barındırılıyorsa, git@github.com adresini uygun bir kullanıcı adı ve URL ile değiştirin. (Github varsayalım) Sunucunun ana bilgisayar anahtarının önbelleğe alınmadığı konusunda bilgilendirilmeli ve ona güvenip güvenmediğiniz sorulmalıdır. Bir y ile cevap verin . Bu, sunucunun ana bilgisayar anahtarını PuTTY'nin bilinen ana bilgisayar listesine ekler. Bu adım olmadan git komutları düzgün çalışmaz. Enter tuşuna bastıktan sonra, Github size Github'un kabuk erişimi sağlamadığını bildirir. Bu iyi ... buna ihtiyacımız yok. (Başka bir ana bilgisayara bağlanıyorsanız ve size kabuk erişimi sağlıyorsa, başka bir şey yapmadan bağlantıyı sonlandırmak muhtemelen en iyisidir.)

  9. Hepsi tamam! Git komutları artık komut satırından çalışmalıdır. Pageant.exe dosyasının .ppk dosyanızı önyükleme sırasında , ne sıklıkta ihtiyacınız olacağına bağlı olarak otomatik olarak yüklemesini isteyebilirsiniz .

İkinci çözüm Windows, msysgit ve TortoiseGit olduğunu varsayar.

TortoiseGit, PuTTY yürütülebilir dosyaları ve işleri kolaylaştıracak özel olarak değiştirilmiş plink (TortoisePlink.exe adı verilen) sürümü ile birlikte gelir.

  1. Msysgit ve TortoiseGit'i talimatlara uygun şekilde kurun.
  2. Henüz yapmadıysanız, GitHub'da veya Git ana bilgisayarınız tarafından belirtildiği gibi bir anahtar karması oluşturun.
  3. Şimdiye kadar yapmadıysanız Yine, TortoiseGit en kullanarak TortoiseGit en pageant.exe ile kullanım için anahtarınızı dönüştürmek PuTTYgen.exe yürütülebilir dosyasını . Talimatlar PuTTY'nin belgelerinde, ilk çözümde bağlantı verilen yardımcı kılavuzda ve siber uzayda başka birçok yerde bulunmaktadır.
  4. TortoiseGit's pageant.exe dosyasını çalıştırın , .ppk dosyanızı ("Anahtar Ekle") açın ve anahtarınız için parolanızı girin.
  5. Windows'un ortam değişkenleri iletişim kutusuna erişin ("Bilgisayar" ı sağ tıklayın, "Özellikler" i tıklayın, "Gelişmiş sistem ayarları" veya "Gelişmiş" sekmesini tıklayın, "Ortam Değişkenleri" ni tıklayın). Aşağıdaki ortam değişkenini ekleyin:

    GIT_SSH = C: \ TortoisePlink.exe için \ tam \ yol \

    "C: \ full \ path \ to" yerine TortoisePlink.exe dosyasının bulunduğu TortoiseGit tam yükleme yolunu yazın. "Kullanıcı değişkenleri" bölümüne eklemek en iyisidir. Ayrıca, TortoisePlink.exe için kullandığınız yolun Pageant (pageant.exe) için kullandığınız yolla eşleştiğinden emin olun. Bazı durumlarda, başka uygulamalarla birlikte yüklenebileceği için birkaç PuTTY yüklemesi olabilir. TortoiseGit kurulumundan TortoisePlink.exe'yi ve farklı bir uygulamanın başka bir kurulumundan (veya bağımsız bir PuTTY kurulumundan) pageant.exe'yi kullanmak muhtemelen sorun yaratacaktır.

  6. Hepsi tamam! Git komutları artık komut satırından çalışmalıdır. Git deponuza ilk kez bağlanmaya çalıştığınızda muhtemelen sunucunun ana bilgisayar anahtarının önbelleğe alınmadığı size bildirilir ve sunucuya güvenip güvenmediğinizi sorar. "Evet" i tıklayın. (Bu TortoisePlink.exe eylemdir.)

    Pageant.exe dosyasının .ppk dosyanızı önyükleme sırasında , ne sıklıkta ihtiyacınız olacağına bağlı olarak otomatik olarak yüklemesini isteyebilirsiniz .

Üçüncü çözüm Pencere, msysgit ve yerel komut istemini varsayar.

  1. Msysgit'i yükle
  2. Git'in MS-DOS komut isteminde kullanılmasına izin verdiğinizden emin olun
  3. Çalıştırmak start-ssh-agent
  4. SSH parolalarını girin
  5. Hepsi tamam! Git komutları artık yerel komut isteminde çalışmalıdır.

3
Her biri kendi macun sürümüne sahip olan GitExtensions ve TortoiseGit öğeleriniz varsa, GIT_SSH ortam değişkenini gerçekte kullandığınız pageantın plink yoluna ayarladığınızdan emin olun .
shovavnik

15
Başka birinin bu aptal hatayla karşılaşması durumunda: HTTPS URL'sini değil, SSH uzak URL biçimini (git @ host: accountname / reponame.git) kullandığınızdan emin olun, aksi takdirde bu şifreyi sormaya devam eder ...
dain

Plink.exe git@github.com çalıştırdığımda, "FATAL HATASI: Sunucu beklenmedik şekilde kapalı ağ bağlantısı" alıyorum
Brett

4
Not: yöntem üç msysgit içine yükseltilmiştir, böylece sadece start-ssh-agentSSH parolanızı kaydetmek için komut satırını yazabilirsiniz .
Matt Clarkson

6
Üçüncü çözüm yalnızca komut istemi kapatılana ve yalnızca bu komut istemi için çalışır - diğer tüm CMD'ler yine de bir parola ister. Ayrıca tüm diğer istemciler (VS, VS Kodu) remote git ile iletişim kuramazlar.
Dima

21

Ne zaman yeni bir masaüstü kurduğumda bu talimatları unutuyorum, bu yüzden eşit sıklıkta karşılaştığım için buraya başka bir cevap ekliyorum!


Benim gibi sabırsız kullanıcılar için hızlı adımlar

  1. OpenSSH Authentication AgentHizmeti etkinleştirin ve otomatik olarak başlatılmasını sağlayın.
  2. SSH anahtarınızı ssh-addkomut satırında bulunan aracıya ekleyin .
  3. Git entegrasyonunu test et, eğer hala parolanızı istiyorsa, devam et.
  4. Ortam değişkenini $ENV:GIT_SSH=C:\Windows\System32\OpenSSH\ssh.exeoturumunuza veya kalıcı olarak kullanıcı ortamınıza ekleyin.

Ayrıntılı Adımlar: Genel Bakış

Windows oldu OpenSSH ile gönderiyor. Ssh'ın Git ile birlikte çalışması için gerekli tüm bitleri içerir, ancak% 100 sorunsuz çalışması için yine de bazı TLC'ye ihtiyacı var gibi görünüyor. Windows ver 10.0.18362.449'dan itibaren bir cmd.exe kabuğu açıp yazarak Windows 10 sürümünüzü görebilirsiniz ver).

Burada SSH anahtar kurulumunuzu zaten yaptığınızı ve ~/.ssh/id_rsa

Windows 10 kutunuzda ssh-agent hizmetini etkinleştirin.

  1. Başlat-> 'Hizmetler' yazın ve görüntülenen Hizmetler Uygulamasını tıklayın.
  2. Bul OpenSSH Authentication AgentListeden hizmeti .
  3. Öğesini sağ tıklayın OpenSSH Authentication AgentServise ve 'Özellikler'i seçin.
  4. Değişim Startup type:ToAutomatic .
  5. StartHizmet durumunu şu şekilde değiştirmek için düğmesini tıklayın:Running .
  6. Simgesini tıklatarak iletişim kutusunu OKkapatın ve Hizmetler uygulamasını kapatın.

Anahtarınızı ssh-agent

  1. Tercih kabuğunuzu açın (bu örnekte Windows Powershell kullanacağım, Powershell Core için de geçerlidir) .
  2. SSH anahtarınızı şuraya ekleyinssh-agent : ssh-add (varsayılandan farklıysa, anahtarınızın yolunu ilk bağımsız değişken olarak ekleyebilirsiniz) .
  3. İstenirse / istendiğinde parolanızı girin.

Git + SSH'yi deneyin

  1. Kabuğunuzu açın (tekrar Powershell kullanıyorum) ve bir repo kopyalayın.git clone git@github.com:octocat/Spoon-Knife
  2. Bu istemi görürseniz sonraki bölüme devam edin:
Enter passphrase for key '/c/Users/your_user_name/.ssh/id_rsa':

GIT_SSHOrtam Değişkeninizi Ayarlayın

Herhangi bir oturumda bu ortam değişkenini kolayca ayarlayabilirsiniz ve parolanızın istemi durur ve ssh ssh-agentsizin adınıza kullanır. Alternatif olarak, parolanızı kullanıcı ortamınıza kalıcı olarak ayarlayabilirsiniz.

GIT_SSHYalnızca geçerli kabukta ayarlamak için:

  1. Tercih kabuğunuzu açın. (Benim için Powershell)
  2. GIT_SSH ortam değişkenini uygun olarak ayarlayın ssh.exe:$Env:GIT_SSH=$((Get-Command -Name ssh).Source)
  3. Yukarıdaki Git + SSH'yi deneyin bölümündeki adımları tekrarlayın .

GIT_SSHKalıcı olarak ayarlamak için

  1. Dosya Gezgini'ni açın. Başlat-> 'Dosya Gezgini' yazın ve listeye tıklayın.
  2. 'Bu PC'ye sağ tıklayın ve' Özellikler'e tıklayın.
  3. 'Gelişmiş sistem ayarları'nı tıklayın.
  4. 'Ortam Değişkenleri ...' düğmesini tıklayın.
  5. 'Kullanıcı_adınız için kullanıcı değişkenleri' altında Yeni ... seçeneğini tıklayın.
  6. Set Variable name:GIT_SSH alanını
  7. Set Variable value:yol-ssh.exe (tipik olarak alan C:\Windows\System32\OpenSSH\ssh.exe).
  8. Yeni Kullanıcı Değişkeni iletişim kutusunu kapatmak için Tamam'ı tıklayın.
  9. Ortam Değişkenleri iletişim kutusunu kapatmak için Tamam'ı tıklatın.
  10. Yukarıdaki Git + SSH'yi deneyin bölümündeki adımları tekrarlayın .

Windows 10 ilerledikçe ve daha fazla bilgi edindikçe bunun yeni adımlar / prosedürlerle değişeceğini unutmayın. Bunu güncel tutmaya çalışacağım, yorumlarda geri bildirim bekliyorum.


3
Bu, en azından Windows için, 1/31/2020 itibariyle en eksiksiz cevaptır. PUTTY veya başka bir şey yüklemenize gerek yoktur.
Jake

Kabul. Yerleşik desteğin sonunda burada olduğu anlaşılıyor.
Eron Lloyd

Efsane! Bu benim sorunumu çözdü. Bir süredir bir çözüm arıyor, farklı şeyler deniyor ve bu, bu soruna en eksiksiz uyanık
Collin

Güzel bir cevap ve beni büyük olasılıkla birkaç saat dağınıklıktan kurtaracak bir cevap için teşekkür ederim. +1
Öfkeli 84

20

Daha ayrıntılı talimatlara ihtiyaç duyan herkes için bu sayfaya bakın: http://help.github.com/working-with-key-passphrases/


msysgitKabuğu kullanmak için tam olarak neye ihtiyacım vardı .
arthurakay

1
Git Bash Masaüstü Uygulamasını kullanırken benim için çalıştı. notepad ~/.profileİçeriği kullandım ve kopyaladım, bu bağlantıdan yapıştırdım, Git Bash'i yeniden başlattım, şifremi
girdim

"Windows için Git'te ssh-agent'ı otomatik olarak başlatma" bölümünü izledim (Win 10'da git 2.x kullanarak) ama yine de benden sürekli şifre istedi. Kabul edilen cevaptan ilk çözümü (macun) takip etmek benim için bunu düzeltti.
jakub.g

20

Git bash'ı Windows altında kullanıyorsanız aşağıdakileri yapabilirsiniz:

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

ikinci komutta geçiş ifadesi isteyecektir ve hepsi bu kadar. Yapmanız gereken her ek işlem (bir kez gerekli parola ifadesi) sizden parola ifadesini istemez (aşağıdaki ekran resminde bir örneğe bakın):

Windows'ta Git bash'a şifre cümlesi ekleme


2
Bu, Windows 10'daki Ubuntu alt sisteminde de çalışır
meetar

1
Anahtar çiftiniz başka bir yerde bulunuyorsa, ~ / .ssh / * _ rsa yerine * .pem dosyasının yolunu kullanabilirsiniz
alex_danielssen

13

Sorunun gönderilmesinden 5 yıl, 8 ay ve 6 gün sonra ekstra bir çözüm kötü bir fikir olmaz, işte burada.

NOT: Windows bilgisayar kullandığınızı varsayar.

  1. İndir git-kimlik-winstore .
  2. Koş! GIT'niz varsaPATHOrtam değişkeninizde , sadece çalışmalıdır. Eğer yapmazsan, koş git-credential-winstore -i C:\Path\To\Git.exe.

Bir sonraki depoyu denemeye çalıştığınızda, kimlik bilgilerinizi girmeniz istenir. Öyle olmalı. Siz şifrenizi değiştirinceye kadar kimlik bilgileriniz istenmeyecektir.


Sadece bilginiz için ... Kimlik bilgileriniz Windows Kimlik Bilgisi Deposu'nda saklanır

Kimlik bilgilerimi nerede saklıyorsunuz?

Bu uygulama yalnızca kimlik bilgilerinizi saklamak için mevcut Windows Kimlik Bilgisi Deposu'nu kullanır. Depolanan kimlik bilgilerini Denetim Masası> Kullanıcı Hesapları> Kimlik Bilgisi Yöneticisi'ne giderek ve "Windows Kimlik Bilgileri" ni seçerek görebilirsiniz. "Git:" ile başlayan girdiler git-credential-winstore dizinindendir.


8
Bu çözüm SSH depolarıyla çalışmıyor gibi görünüyor, sadece HTTPS. / angryface
JasonCoder

8

Anahtar dosyanız için bir parola ayarlarsanız, bağlanırken her zaman bu parolayı girmeniz gerekir. Parolasız bir anahtar oluşturursanız, her seferinde yazmak zorunda kalmazsınız, ancak anahtar dosyanıza erişimi olan herkes artık github hesabınıza bağlanabilir.

ssh-agent da işe yarayabilir. Bunu çalıştırmayı deneyin ve parolanızı hatırlayıp hatırlamayacağını görün.


koşu ssh-keygen -pOP hiçbir parola koymak için izin vermelidir
luchosrock

Hala şifre soruluyor.
versedi

7

[edit - soruyu yanlış okuduğunuzda, bu ilgili bir sorunun cevabıdır. gelecek kuşaklar için yeniden düzenlenmiş sürüm bırakma]

Benim durumum, bir sunucumuzda barındırılan bir repo itmeye çalışıyordu. Her ne zaman bir push yapmaya çalışsam, git benden şifremi sorardı (nb - şifre, özel anahtarımın parolasını değil).

Ortak anahtarımı sunucudaki yetkili anahtarlara ekleyerek, o sunucuya parola gerektirmeyen pushlar alabildim. Ve, çünkü bir parola yoktu özel anahtarımda (btw kötü uygulama!) Hiçbir şey yazmam gerekmiyordu.

Genel anahtarınızı bir sunucuya ekleme komutu. gitKullanıcının sunucudaki kullanıcı olduğunu varsayar .

cat .ssh/id_rsa.pub | ssh git@GIT_MASTER_IP 'cat >> .ssh/authorized_keys'

Aynı şeyi sunucuya giriş yapıp genel anahtarınızı adresindeki dosyaya manuel olarak ekleyerek de elde edebilirsiniz. ~/.ssh/authorized_keys


Bunu bir kabuğa erişimi olmayan biri tarafından kullanılabilecek bir açıklamaya dönüştürebilir misiniz? Örneğin, yetkili_anahtarları not defteri veya benzeri kullanarak ne koymalıyız?
John Little

4

Bunun birkaç yıl geciktiğini fark ettim, ancak bu soruya bir çözüm bulmaya çalışırken tökezledim ve tüm uzmanlık seviyelerine uygun bir şey buldum, bu yüzden paylaşacağımı düşündüm.

GitHub, her şeyi güzel ve kolay hale getiren çok yararlı bir yükleyici sağlar: https://help.github.com/articles/caching-your-github-password-in-git/


Lütfen bunun GPG anahtarı parolasını değil GitHub parolanızı önbelleğe aldığını unutmayın .
Judge2020

4

TortoiseGit veya PuTTY kullanmadan yalnızca saf bir Git Bash çözümü kullanmak istediğinizi varsayalım . Ayrıca, parola öbeklerinizi kalıcı olarak saklamak istemezsiniz, çünkü SSH anahtarınızı parola olmadan ilk başta oluşturmuş gibi neredeyse aynıdır. Ama yine de biraz önbellek kullanmak istiyorsunuz.

Önbellek amaçları ssh-agentiçin Git Bash dağıtımına dahil olan işlem kullanılır. Bu işlem varsayılan olarak başlatılmaz, bu yüzden önce başlatılması gerekir. SSH anahtarlarının önbelleğe alınabilmesi için, bu işlemessh-add sizden bir anahtarın parolasını girmenizi ve hafızaya komutla .

Diğer çözümlerin dezavantajları:

  • GitHub'ın makalesinde olduğu ssh-agentgibi otomatik başlatma, Git Bash'i başlattığınızda en başından bu sefer SSH anahtarınızı kullanmanız gerekip gerekmediğine bakılmaksızın bir parola ister. Bugün yerel repo ile çalışıyorsanız, muhtemelen sadece gerçekten gerekli olduğunda (örneğin, uzak bir repo ile etkileşimde bulunurken) bir parola sağlamak isteyeceksiniz.
  • Eğer Lansmanınız Eğer ssh-agentgibi GitLab en ile makalesinde eval $(ssh-agent -s)muhtemelen her zaman içinde yazarak o yorgun ediyoruz. Sonunda, .bashrcotomatik olarak başlatmak için bu iki satırı yapılandırmanıza eklediniz . Dezavantajları, yukarıdaki artı bir ekstra ile aynıdır: Her yeni Git Bash terminalini her başlattığınızda ekstra bir ssh-agent işlemi alırsınız (GitHub'ın bash betiği, bu işlemin başlayıp başlamadığını kontrol eder).
  • Yukarıdaki ikisi gibi ama özellikle farklı ana bilgisayarlar için ayrı SSH anahtarlarınız varsa, örneğin biri GitHub için diğeri GitLab için, bu yüzden hepsini bir kerede sağlamak can sıkıcı ve rahatsız edici.

Bu çözüm, Git Bash'in her Windows oturumu için yalnızca bir kez ve gerçekten gerekli olduğunda nasıl bir parola istemesini merak edenler içindir. GnuPG kaydedilmesini ile passphrases yönetiminin davranışını andıran otomatik imzalama kullanılarak default-cache-ttl.

SSH'yi yalnızca Git Bash kullanarak gerektiğinde bir kez parola isteyecek şekilde yapılandırma

  1. İlk olarak, ssh-agentGit Bash kabuğunu başlatırken otomatik olarak başlatmak istiyoruz . İşlemin başlayıp başlamadığını kontrol ettiği için değiştirilmiş bir GitHub komut dosyası kullanacağız , ancak hemen ssh-addanahtarların girmesini istemiyoruz . Bu komut dosyası sizin ~/.bashrcveya ( ~/.profileveya Kullanıcınızın ana dizininin - run ve sonra Git Bash'ın yazdırması için olduğu gibi) adresine gider : ~/.bash_profile~C:\Users\Usernamecd ~pwd

    ### Start ssh-agent
    
    env=~/.ssh/agent.env
    
    agent_load_env () { test -f "$env" && . "$env" >| /dev/null ; }
    
    agent_start () {
        (umask 077; ssh-agent >| "$env")  # use -t here for timeout
        . "$env" >| /dev/null ; }
    
    agent_load_env
    
    # agent_run_state: 0=agent running w/ key; 1=agent w/o key; 2= agent not running
    agent_run_state=$(ssh-add -l >| /dev/null 2>&1; echo $?)
    
    if [ ! "$SSH_AUTH_SOCK" ] || [ $agent_run_state = 2 ]; then
        agent_start
    fi
    
    unset env
  2. Şimdi bir ~/.ssh/configdosyayı düzenleyin veya oluşturun ve AddKeysToAgentönbelleğe almanın etkinleştirilmesini istediğiniz her ana bilgisayar stanza için bir seçenek ekleyin (ayrıca tüm ana bilgisayar bildirimlerinden önce yönerge dosyanın başına yerleştirilerek genel olarak da açabilirsiniz):

    # GitHub.com
    Host github.com
      Preferredauthentications publickey
      IdentityFile ~/.ssh/id_ed25519_github
      AddKeysToAgent yes
    
    # GitLab.com
    Host gitlab.com
      Preferredauthentications publickey
      IdentityFile ~/.ssh/id_ed25519_gitlab
      AddKeysToAgent yes

    Ssh config man sayfasından : Bu seçenek yes olarak ayarlanırsa ve bir dosyadan bir anahtar yüklenirse, anahtar ve parolası, ssh-add (1) gibi varsayılan yaşam süresine sahip aracıya eklenir.

Varsayılan maksimum kullanım ömrü sonsuza kadar veya ssh-agentişlem öldürülünceye kadar (görev yöneticisinden el ile veya bilgisayarınız kapatıldığında). Sonlu bir zaman aşımı kullanmak istiyorsanız, ssh-agent -tparametresi ile ayarlayabilirsiniz . Bash komut dosyasındaki satırı yukarıdaki ilk adımdan değiştirin, örneğin 30 dakikalık anahtar önbellek ömrü boyunca:

(umask 077; ssh-agent -t 30m >| "$env")

Diğer saat biçimi niteleyicileri için buraya bakın .


3

.bashrcKullanıcınızın giriş dizininde aşağıdaki gibi bir dosya oluşturabilir C:/Users/youruserve buraya koyabilirsiniz:

env=~/.ssh/agent.env

agent_load_env () { test -f "$env" && . "$env" >| /dev/null ; }

agent_start () {
    (umask 077; ssh-agent >| "$env")
    . "$env" >| /dev/null ; }

agent_load_env

# agent_run_state: 0=agent running w/ key; 1=agent w/o key; 2= agent not running
agent_run_state=$(ssh-add -l >| /dev/null 2>&1; echo $?)

if [ ! "$SSH_AUTH_SOCK" ] || [ $agent_run_state = 2 ]; then
    agent_start
    ssh-add
elif [ "$SSH_AUTH_SOCK" ] && [ $agent_run_state = 1 ]; then
    ssh-add
fi

unset env

Bu komut dosyası, bash her çalıştırıldıktan sonra yürütülür. Bu nedenle git-bash, başlatıldığında şifreyi yalnızca bir kez girmeniz gerekecektir !

Bazı bash sürümleri .bash_profilebunun yerine dosya gerektirir .bashrc, bu nedenle klonlama durumunda.bashrc :

copy .bashrc .bash_profile

1

bunu yaptığınızda -k arg eklemeyi deneyebilir;

ssh-add -k ~/.ssh/id_rsa
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.