web-dev-qa-db-fra.com

SVN + SSH, ne pas avoir à faire ssh-add à chaque fois? (Mac OS)

Je sais que la réponse est là-bas, mais je suis plutôt unix-stupide et je ne reconnaîtrais probablement pas la solution si cela me frappait au visage.

Je suis sur un Mac et me connecte à un serveur SVN via le tunneling SSH. Je dois ssh-add privateKey.txt chaque fois que je veux me connecter au serveur SVN (Cornerstone et Xcode se connectent à SVN). 

Y a-t-il un moyen de "sauvegarder" la clé quelque part pour que je ne sois pas obligé de le faire à chaque fois? Ajoutez-le à mon trousseau? Un fichier de configuration? Script de démarrage? 

102
James J

Commencez par déplacer votre fichier de clé privée dans ~/.ssh. Ce n'est pas strictement nécessaire, mais c'est l'endroit habituel pour ce genre de choses.

Puis lancez ssh-add -K ~/.ssh/privateKey.txt. Il vous demandera votre phrase secrète si nécessaire, puis ajoutez-le à votre trousseau.

Après cela, vous ne devriez plus rien faire. Une explication un peu plus longue est disponible ici .

172
Nicholas Riley

Stockage des mots de passe dans le trousseau

Pour stocker la phrase secrète de votre clé par défaut dans le trousseau, ouvrez un terminal et exécutez:

ssh-add -K

Et pour stocker la phrase secrète pour une autre clé, exécutez:

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

Lorsque vous êtes invité à entrer votre mot de passe, entrez-le et c'est tout.

Vous n'aurez plus besoin de lancer ssh-add ni de saisir votre phrase secrète à nouveau.

Réponse extraite de ce site: http://www-uxsup.csx.cam.ac.uk/~aia21/osx/leopard-ssh.html

49
Adam

Après de nombreuses recherches, je pense avoir trouvé la réponse complète à ce problème. Tout d’abord, assurez-vous de faire ssh-add -K ~/.ssh/your_key_here. Cela ajoute la clé à votre trousseau. Certains endroits, j'ai lu que cela suffisait, mais je n'étais pas certain. Ceci est également spécifique à mac, donc si vous avez besoin de le faire sur une autre version unix, vous n’avez pas nécessairement cette option.

Pour faire bonne mesure, j'ai édité le fichier ~/.ssh/config (vous devrez peut-être le créer) pour qu'il pointe vers toutes les clés que j'ai. Le mien a le suivant:

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

Selon la man page pour ssh_config, il les essayera dans l’ordre. Je ne suis pas sûr si les trois premiers par défaut que j'ai énumérés doivent être là, mais je les ai quand même inclus.

19
mitalia

Depuis macOS 10.12.2, vous pouvez utiliser l’option UseKeychain. Lisez plus ici ou regardez dans 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''.

Alors, procédez comme suit:

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

5
Ben

Je n'ai pas beaucoup d'expérience avec les macs, donc je ne sais pas si cette version vous convient, mais jetez un oeil à http://www.phil.uu.nl/~xges/ssh/

Si cette application particulière ne fonctionne pas, c'est ce que vous cherchez quand même - ssh agent. Sur les boîtiers de type Unix, vous voudriez lancer tout votre gestionnaire de fenêtres par ce biais pour obtenir un effet global, mais cela pourrait ne pas être possible sous osx.

Quelques informations supplémentaires: http://www-uxsup.csx.cam.ac.uk/~aia21/osx/leopard-ssh.html

2
viraptor

sshkeychain est une possibilité. s'installe correctement avec macports en utilisant:

Sudo port install sshkeychain

il utilise le trousseau pour stocker les mots de passe, et vous pouvez simplement le lancer au démarrage de votre session de connexion (en utilisant au premier lancement le clic droit habituel dans l'icône du dock + "lancer au démarrage")

Notez que svn d'Apple utilise le trousseau pour stocker les mots de passe, mais pas nécessairement le binaire svn que vous construiriez avec macports.

1
meduz

Ajoutez votre clé au trousseau en lançant:

ssh-add -K ~/.ssh/id_rsa

éditez votre fichier ssh config (~/.ssh/config) pour charger automatiquement les clés de la chaîne de clés dans ssh-agent (option AddKeysToAgent yes) et stocker les phrases secrètes dans le trousseau (option UseKeychain yes):

Host *
 AddKeysToAgent yes
 UseKeychain yes
0
jkukul