SVN+SSH, nie trzeba robić SSH-add za każdym razem? (Mac OS)

Wiem, że odpowiedź jest tam, ale jestem dość Unix-głupi i prawdopodobnie nie rozpoznałby rozwiązanie, jeśli uderzy mnie w twarz.

Jestem na komputerze Mac, łącząc się z serwerem SVN poprzez tunelowanie SSH. Muszę ssh-add privateKey.txt za każdym razem, gdy chcę połączyć się z serwerem SVN (zarówno Cornerstone, jak i Xcode łączą się z SVN).

Czy istnieje sposób, aby gdzieś "zapisać" klucz, żebym nie musiał tego robić za każdym razem? Dodać go do breloka? Jakiś plik konfiguracyjny? Uruchomić skrypt?

 101
Author: James J, 2009-12-15

7 answers

Najpierw przenieś plik klucza prywatnego do ~/.ssh. Nie jest to bezwzględnie konieczne, ale jest to standardowe miejsce dla takich rzeczy.

Następnie uruchom ssh-add -K ~/.ssh/privateKey.txt. W razie potrzeby wyświetli monit o hasło, a następnie doda je do pęku kluczy.

Po tym, nie powinieneś robić nic innego. Nieco dłuższe Wyjaśnienie jest dostępne tutaj .

 170
Author: Nicholas Riley,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-12-16 03:18:31

Przechowywanie haseł w pęku kluczy

Aby zapisać hasło do domyślnego klucza w Pęku Kluczy, otwórz Terminal i uruchom:

ssh-add -K

I zapisanie hasła dla innego klucza:

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

Po wyświetleniu monitu o hasło wprowadź je i to wszystko.

Nigdy nie będziesz musiał ponownie uruchamiać ssh-add ani wprowadzać hasła.

Odpowiedź zaczerpnięta z tej strony: http://www-uxsup.csx.cam.ac.uk / ~aia21/osx/leopard-ssh.html

 49
Author: Adam,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-07-26 15:49:24

Po wielu poszukiwaniach, myślę, że znalazłem odpowiedź na ten problem całkowicie. Najpierw upewnij się, że to robisz ssh-add -K ~/.ssh/your_key_here. Spowoduje to dodanie klucza do pęku kluczy. W niektórych miejscach czytałem, że to wystarczy, ale nie byłem pewien. Jest to również specyficzne dla komputerów mac, więc jeśli musisz to zrobić na innym Uniksie, nie będziesz mieć tej opcji koniecznie.

Na dobrą sprawę edytowałem plik ~/.ssh/config (Być może będziesz musiał go utworzyć), aby wskazać wszystkie klucze, które mam. Mój ma "po": {]}

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

Zgodnie ze stroną podręcznika dla ssh_config, spróbuje ich w kolejności. Nie jestem pewien, czy pierwsze trzy domyślne, które wymieniłem, muszą tam być, ale i tak je uwzględniłem.

 18
Author: mitalia,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-10-11 17:23:17

Od wersji macOS 10.12.2 można użyć opcji UseKeychain. Czytaj więcej tutaj lub zajrzyj do 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''.

Więc po prostu wykonaj następujące czynności:

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

 4
Author: Ben,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-01-26 10:33:07

Nie mam dużego doświadczenia z Macami, więc nie wiem, czy ta wersja jest ok dla ciebie, ale spójrz na http://www.phil.uu.nl/ ~ xges / ssh /

Jeśli ta konkretna aplikacja nie działa, to i tak tego szukasz - ssh agent. Na skrzynkach podobnych do Uniksa chciałbyś uruchomić cały menedżer okien, aby uzyskać efekt globalny, ale w osx może to nie być możliwe.

Trochę więcej informacji: http://www-uxsup.csx.cam.ac.uk / ~aia21/osx/leopard-ssh.html

 2
Author: viraptor,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-12-15 19:15:36

Sshkeychain jest jedną z możliwości. instaluje fine z macports używając:

sudo port install sshkeychain

Używa pęku kluczy do przechowywania haseł i możesz po prostu uruchomić go przy starcie sesji logowania (używając przy pierwszym uruchomieniu zwykłego prawego przycisku w ikonie Docka + "Uruchom przy starcie")

Zauważ, że Apple svn używa pęku kluczy do przechowywania haseł, ale niekoniecznie binarnych svn, które można zbudować za pomocą macports.

 1
Author: meduz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-12-21 10:08:49

Dodaj swój klucz do pęku kluczy, uruchamiając:

ssh-add -K ~/.ssh/id_rsa

I edytować plik konfiguracyjny ssh (~/.ssh/config), aby automatycznie załadować klucze z łańcucha kluczy do agenta ssh (opcjaAddKeysToAgent yes) i zapisać hasła w pęku kluczy (opcjaUseKeychain yes):

Host *
 AddKeysToAgent yes
 UseKeychain yes
 0
Author: jkukul,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-06-24 20:28:22