Eğer SSH kullanıyor ve özel anahtar bir parola ile şifrelenmiş, o hala Git ile ağ işlemlerini yaparken özel anahtar için parola / şifre girmek istenir gibi push
, pull
ve fetch
.
Özel anahtar parolasını / parola kimlik bilgilerini kaydetmek için ssh-agent kullanın
Eğer parola her zaman girmek zorunda kalmamak için, kullanabilirsiniz ssh-agent
ben açıkladığımız terminal oturum başına bir kez özel anahtar parolası kimlik bilgilerini saklamak için cevabım kimlik doğrulama ajan bağlantı açılamadı :
$ eval `ssh-agent -s`
$ ssh-add
Windows msysgit Bash uygulamasının çıktısını değerlendirmeniz gerekir ssh-agent
, ancak aynı şeyi diğer geliştirme ortamlarında ve işletim sistemlerinde yapmanız gerekip gerekmediğinden emin değilim.
ssh-add
ana .ssh
klasörünüzde id_rsa
varsayılan ad olan özel bir anahtar arar , ancak farklı bir ada sahip bir anahtara dosya yolu iletebilirsiniz.
Ajanı öldürmek
Terminal oturumunuzu tamamladığınızda ssh-agent
, kill bayrağını kapatabilirsiniz -k
:
$ ssh-agent -k
ssh-agent
Kılavuzda açıklandığı gibi :
-k
Geçerli aracıyı öldür (SSH_AGENT_PID ortam değişkeni tarafından verilir).
İsteğe bağlı zaman aşımı
Ayrıca, aşağıdaki gibi isteğe bağlı bir zaman aşımı parametresi alabilir:
$ ssh-add -t <timeout>
nerede <timeout>
biçimi olduğu <n>h
için <n>
saat <n>m
boyunca <n>
dakikada, vb.
ssh-agent
El kitabına göre :
-t life
Aracıya eklenen kimliklerin maksimum ömrü için varsayılan bir değer belirleyin. Ömür, saniye cinsinden veya sshd_config (5) 'te belirtilen saat biçiminde belirtilebilir . Ssh-add (1) ile bir kimlik için belirtilen bir ömür, bu değeri geçersiz kılar. Bu seçenek olmadan varsayılan maksimum kullanım ömrü sonsuza dek sürer.
Daha fazla zaman biçimi için bu sayfaya bakın .
Cygwin kullanıcıları için güvenlik uyarısı
Cygwin kullanıcıları, Cygwin'de ssh-agent kullanarak olası bir güvenlik riskinin farkında olmalıdır :
insanlar Cygwin 1 altında ssh-ajan potansiyel tehlikeleri bilişli olmalıdır , ancak yerel bir netstat ve uzak portları altında / tmp / ssh-foo belirtilen port herkes tarafından erişilebilir görünmüyor olabilir ...?
[1]: http://www.cygwin.com/ml/cygwin/2001-01/msg00063.html
Ve de anılan bağlantı :
ancak, Cygwin Unix etki alanı soketlerinin TEMEL SİGORTA olduğunu ve bu nedenle Cygwin altında ssh-agent kullanımını şiddetle DAVET EDİYORUM .
Cygwin altında ssh-agent'ı çalıştırdığınızda, /tmp/ssh-$USERNAME/
dizinde AF_UNIX soketi oluşturur . Cygwin altında AF_UNIX soketleri AF_INET soketleri aracılığıyla taklit edilir. /tmp/ssh-$USERNAME/agent-socket-*
Notepad ile dosyaya bakacak olursanız kolayca görebilirsiniz . Gibi bir şey göreceksin
!<socket >2080
sonra koş netstat -a
ve sürpriz! 2080 numaralı bağlantı noktasını dinleyen bir programınız var. Bu ssh aracısı. Ssh sunucudan bir RSA sorgusu aldığında, buna karşılık gelir /tmp/ssh-$USERNAME/agent-socket-*
(Cygwin altında, bizim durumumuzda, bu bağlantıyı açacağı anlamına gelir localhost:2080
) ve ssh-agent'tan RSA sorgusunu sahip olduğu özel anahtarla işlemesini ister ve ssh aracısından alınan yanıtı sunucuya iletir.
Unix altında, program bir AF_UNIX soketine erişmeye çalıştığında Unix çekirdeği izinleri kontrol ettiğinden, böyle bir senaryo sorunsuz çalışır. Ancak AF_INET soketleri için bağlantılar anonimdir ("güvensiz" bölümünü okuyun). Cygwin ssh-agent'ınızın çalıştığını düşünün. Kötü niyetli bir bilgisayar korsanı kutunuza bağlantı kurabilir, ssh-agent tarafından kullanılan açık bağlantı noktasını bulabilir, SSH sunucunuzla bağlantı kurabilir, ondan RSA zorluğunu alabilir, bulduğu açık bir bağlantı noktası üzerinden ssh-ajanınıza gönderebilir, RSA yanıtı, SSH sunucusuna ve voila'ya gönderin, sunucunuzda başarıyla oturum açtı.