SVN + SSH, her seferinde ssh eklemek zorunda değil misiniz? (Mac os işletim sistemi)


105

Cevabın orada olduğunu biliyorum, ama ben oldukça Unix aptalım ve yüzüme çarparsa muhtemelen çözümü tanımazdım.

Mac kullanıyorum, SSH tünelleme yoluyla bir SVN sunucusuna bağlanıyorum. Mecbur ssh-add privateKey.txtSVN sunucusuna bağlanmak istediğiniz her zaman (Cornerstone ve Xcode Hem SVN bağlanıyorsanız).

Her seferinde bunu yapmak zorunda kalmamam için anahtarı bir yerde "kaydetmenin" bir yolu var mı? Anahtar Zincirime eklensin mi? Bir yapılandırma dosyası mı? Komut dosyası başlatılsın mı?

Yanıtlar:


172

Öncelikle, özel anahtar dosyanızı içine taşıyın ~/.ssh. Bu kesinlikle gerekli değildir, ancak bu tür şeyler için standart yerdir.

Sonra koş ssh-add -K ~/.ssh/privateKey.txt. Gerekirse parolanızı sorar ve ardından Anahtar Zincirinize ekler.

Bundan sonra başka bir şey yapmanıza gerek kalmaz. Burada biraz daha uzun bir açıklama var .


17
Bunun bir Mac işi olduğunu, evrensel bir Unix olayı olmadığını açıkça belirtmeye değer olduğunu düşünüyorum. Ubuntu üzerinde ssh-addbir alamaz -Kargüman.
Mark Amery

2
Bağlantılı makale Leopard için olsa da, bunun OS X Mavericks'te hala çalıştığını belirtmek isterim.
Josh Brown

1
Belki birinin diğer ortamlar için eşdeğer bir komutu vardır? mysysgit'in ssh-add, -K argümanını da kabul etmiyor
Blake

5
Bazı nedenlerden dolayı -KI yeniden başlattıktan sonra hala sorun yaşıyorum
Mat Teague

7
MacOS Sierra'da mısınız? Davranış değişti ve şimdi oturum açma sırasında ssh- agent'a
Nicholas Riley

49

Anahtar Zincirinde Parolaların Saklanması

Varsayılan anahtarınızın parolasını Anahtar Zincirinde saklamak için bir Terminal açın ve çalıştırın:

ssh-add -K

Ve farklı bir anahtar çalıştırma için parolayı saklamak için:

ssh-add -K /path/to/private/key/file

Parolanız istendiğinde onu girin ve işte bu kadar.

Bir daha asla ssh-add çalıştırmanıza veya parolanızı girmenize gerek kalmayacak.

Bu siteden alınan cevap: http://www-uxsup.csx.cam.ac.uk/~aia21/osx/leopard-ssh.html


20

Uzun araştırmalardan sonra bu sorunun cevabını tamamen bulduğumu düşünüyorum. İlk önce yaptığınızdan emin olun ssh-add -K ~/.ssh/your_key_here. Bu, anahtarı anahtar zincirinize ekler. Bazı yerlerde bunun yeterli olduğunu okudum ama emin değildim. Bu aynı zamanda Mac'e özgüdür, bu nedenle bunu başka bir unix çeşidinde yapmanız gerekirse, bu seçeneğe mutlaka sahip olmayacaksınız.

İyi bir önlem için, ~/.ssh/configdosyayı elimdeki tüm anahtarları gösterecek şekilde düzenledim (oluşturmanız gerekebilir). Benimkinde şunlar var:

IdentityFile ~/.ssh/identity
IdentityFile ~/.ssh/id_rsa
IdentityFile ~/.ssh/id_dsa 
IdentityFile ~/.ssh/my_other_identity_here
IdentityFile ~/.ssh/yet_another_identity_here

Ssh_config için man sayfasına göre , bunları sırayla deneyecektir. Listelediğim ilk üç varsayılanın orada olması gerekip gerekmediğinden emin değilim, ancak yine de ekledim.


İçin -Kmac os ssh-add
x'te

2
Orada olan bir -Kiçin OS X üzerinde bayrak ssh-add. Buna ek olarak, seçilen cevap bu olmalıdır.
kaiser

1
/usr/bin/ssh-addSağlanan homebrew kullandığınızdan emin olun /usr/local/bin/ssh-add, -K seçeneğini sağlamaz.
Remco Wendt

2
Bir kez ~/.ssh/configorada olduğunda, ssh-addmakineyi yeniden başlattıktan sonra her seferinde komutu çalıştırmaya gerek yoktur .
hailong

7

MacOS 10.12.2'den beri UseKeychainseçeneği kullanabilirsiniz . Daha fazlasını buradan okuyun veya araştırın man ssh_config.

     UseKeychain
         On macOS, specifies whether the system should search for passphrases in the user's keychain
         when attempting to use a particular key. When the passphrase is provided by the user, this
         option also specifies whether the passphrase should be stored into the keychain once it has
         been verified to be correct.  The argument must be ``yes'' or ``no''.  The default is ``no''.

Öyleyse sadece şunları yapın:

echo "UseKeychain yes" >> ~/.ssh/config


3
Bunun yukarı çıkması gerekiyor. Çok önemli !
quarezz

2

Mac'ler konusunda pek tecrübem yok, bu yüzden bu sürümün sizin için uygun olup olmadığından emin değilim, ancak http://www.phil.uu.nl/~xges/ssh/ adresine bir göz atın.

Bu belirli uygulama çalışmazsa, zaten aradığınız şey budur - ssh agent. Unix benzeri kutularda, global etkiyi elde etmek için tüm pencere yöneticinizi bundan başlatmak istersiniz, ancak osx'te bu mümkün olmayabilir.

Biraz daha bilgi: http://www-uxsup.csx.cam.ac.uk/~aia21/osx/leopard-ssh.html


1

sshkeychain bir olasılıktır. aşağıdakileri kullanarak macports ile iyi yükler:

sudo port install sshkeychain

parolaları saklamak için anahtar zincirini kullanır ve onu oturum açma oturumunuzun başlangıcında başlatabilirsiniz (ilk çalıştırmada yuva simgesindeki normal sağ tıklama + "başlangıçta başlat")

Apple'ın svn'sinin parolaları saklamak için anahtar zincirini kullandığını, ancak macports ile oluşturacağınız svn ikili dosyasını zorunlu olarak kullanmadığını unutmayın.


0

Aşağıdakileri çalıştırarak anahtarınızı anahtar zincirine ekleyin:

ssh-add -K ~/.ssh/id_rsa

ve ~/.ssh/configanahtar zincirinden ssh aracısına ( AddKeysToAgent yesseçenek) anahtarları otomatik olarak yüklemek ve anahtar zincirinde ( seçenek) parolaları depolamak için ssh config ( ) dosyanızı düzenleyin UseKeychain yes:

Host *
 AddKeysToAgent yes
 UseKeychain yes
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.