2009-12-15 13 views
98

Sé que la respuesta está por ahí, pero soy bastante tonto con Unix y probablemente no reconocería la solución si me golpeara en la cara.SVN + SSH, sin tener que hacer ssh-add cada vez? (Mac OS)

Estoy en una Mac, conectando a un servidor SVN a través de túnel SSH. Tengo que ssh-add privateKey.txt cada vez que quiero conectarme al servidor SVN (Tanto Cornerstone como Xcode se conectan a SVN).

¿Hay alguna forma de "guardar" la clave en alguna parte, así que no tengo que hacer esto siempre? Agregarlo a mi llavero? Algún archivo de configuración? Start up script?

Respuesta

167

En primer lugar, mover el archivo de clave privada en ~/.ssh. Esto no es estrictamente necesario, pero es el lugar estándar para tales cosas.

Luego ejecute ssh-add -K ~/.ssh/privateKey.txt. Le pedirá su frase de contraseña si es necesario, y luego la agregará a su Llavero.

Después de eso, no debería tener que hacer nada más. Una explicación un poco más larga está disponible here.

+16

Calculo vale la pena señalar explícitamente que esto es una cosa Mac, no es una cosa universal de Unix. En Ubuntu, 'ssh-add' no puede tomar un argumento' -K'. –

+2

Me gustaría señalar que si bien el artículo vinculado es para Leopard, esto todavía funciona en OS X Mavericks. –

+1

¿Tal vez alguien tiene un comando equivalente para otros entornos? mysysgit's ssh-add no acepta el argumento -K, ya sea – Blake

2

no tengo mucha experiencia con los Mac, así que no sé si esta versión es aceptable para su, pero echar un vistazo a http://www.phil.uu.nl/~xges/ssh/

Si esta aplicación en particular no funciona, eso es lo que estás buscando para todos modos - ssh agent. En los cuadros de tipo Unix, querría iniciar todo su administrador de ventanas a través de eso, para obtener el efecto global, pero podría no ser posible en osx.

algo más de información: http://www-uxsup.csx.cam.ac.uk/~aia21/osx/leopard-ssh.html

1

sshkeychain es una posibilidad. instala bien con macports utilizando:

sudo port install sshkeychain 

se utiliza la llave para almacenar contraseñas, y es posible que simplemente lanzarla en la puesta en marcha de la sesión de inicio de sesión (utilizando en la primera puesta en marcha del habitual botón derecho del ratón-lucha en el dock's icon + "launch at startup")

Tenga en cuenta que el svn de Apple utiliza el llavero para almacenar contraseñas, pero no necesariamente el svn binario que construiría con macports.

18

Después de mucha exploración, creo que he encontrado la respuesta a este problema por completo. Primero, asegúrese de hacerlo ssh-add -K ~/.ssh/your_key_here. Esto agrega la llave de tu llavero. En algunos lugares, he leído que esto es suficiente, pero no estaba seguro. Esto también es específico de Mac, por lo que si necesita hacer esto en otro sabor de Unix, no tendrá necesariamente esta opción.

Por si fuera poco, edité el archivo ~/.ssh/config (puede que tenga que crearlo) para señalar todas las claves que tengo. La mía tiene las siguientes:

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

De acuerdo con la man page para ssh_config, intentará éstos en orden. No estoy seguro de si los primeros tres valores predeterminados que he enumerado deben estar allí, pero los he incluido de todos modos.

+0

No hay ninguna bandera '-K' en mac os x para 'ssh-add' –

+2

** Hay ** un indicador' -K' en OS X para 'ssh-add'. Adicional a eso, esta debería ser la respuesta seleccionada. – kaiser

+1

Asegúrese de utilizar '/ usr/bin/ssh-add' el homebrew siempre que'/usr/local/bin/ssh-add' no proporcione la opción -K. –

49

Almacenamiento de frases de contraseña en el llavero

Para almacenar la contraseña para su clave por defecto en el llavero de abrir un terminal y ejecutar:

ssh-add -K 

Y para almacenar la frase de paso para una carrera clave diferente:

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

Cuando se le solicite su contraseña, ingrésela y ya está.

Nunca necesitará ejecutar ssh-add ni ingresar su frase de contraseña nuevamente.

respuesta tomada de este sitio: http://www-uxsup.csx.cam.ac.uk/~aia21/osx/leopard-ssh.html

3

Desde macOS 10.12.2 se puede utilizar la opción UseKeychain. Read more here o mira en 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''. 

Así que haga lo siguiente:

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

+1

Esto necesita aumentar. **Muy importante**! – quarezz

Cuestiones relacionadas