Hay mucha información contradictoria que he leído cada vez que busco información sobre el uso de ssh-agent
(proceso de ahorro/reutilización de la frase de paso) en Mac OS X. La mayoría de los recursos parecen sugerir que simplemente emitiendo ssh-add -K
le permitirá almacenar su frase de contraseña, y configurará automáticamente OS X para lanzar ssh-agent
automáticamente y cargar su frase de contraseña almacenada.
Nota: Corriendo ssh-add -K
sólo funcionará si tiene su archivo de clave privada en una de las ubicaciones comunes, siendo esas ubicaciones las siguientes ~/.ssh/id_rsa
, ~/.ssh/id_dsa
, ~/.ssh/identity
. Si el archivo se encuentra en otro lugar, debe especificar esa ruta después de la -K en el comando anterior.
La razón por la que te aparece el diálogo de la frase de contraseña del archivo de claves cuando te conectas al segundo servidor (sin claves) es probablemente porque la configuración por defecto de los servidores SSH es utilizar primero la autenticación de clave pública y después la autenticación "interactiva por teclado".
Al tener una clave pública con un nombre/ubicación estándar ( ~/.ssh/id_rsa
), su cliente OpenSSH envía la clave privada para que el servidor pueda compararla con una clave permitida authorized_keys
archivo.
Hay un pequeño puñado de maneras de evitar esto, las dos más fáciles son pasar una bandera en la línea de comandos, o añadirlo como un elemento de configuración permanente en su ~/.ssh/config
archivo.
-
Cuando te conectes al servidor secundario/sin llave, puedes añadir -o "PubkeyAuthentication=no" al conectarte. Algo así como ssh -o "PubkeyAuthentication=no" me@devserver2
.
-
Abrir ~/.ssh/config
en tu editor de texto favorito, créalo primero si es necesario, e introduce lo siguiente:
Host devserver2
User me
PubkeyAuthentication no
Ahora, si simplemente escribe ssh devserver2
el nombre de usuario y la configuración de la pubkey serán leídos y utilizados, y se le pedirá la contraseña y nada más.
( Nota: Sustituya devserver2 por el nombre real del servidor. Alternativamente, escoge un nombre de host agradable, como devserver2, y añade una propiedad entre User y PubkeyAuthentication llamada 'Hostname' y pon el nombre o la dirección IP del servidor allí. Después, en realidad puedes simplemente escribir 'ssh devserver2' y todas las propiedades de configuración harán su respectiva magia).