Hay mucha información conflictiva que he leído cada vez que busco información sobre el uso de ssh-agent
(proceso de guardado / reutilización de frase de contraseña) en Mac OS X. La mayoría de los recursos parecen sugerir que simplemente emitir ssh-add -K
le permitirá almacenar su contraseña y configurará automáticamente el OS X para iniciar ssh-agent
automáticamente y cargue su frase de contraseña almacenada.
Nota: la ejecución de ssh-add -K
solo funcionará si tienes tu archivo de clave privada en una de las ubicaciones comunes, estas ubicaciones se limitan a: ~/.ssh/id_rsa
, ~/.ssh/id_dsa
, ~/.ssh/identity
. Si el archivo se encuentra en otro lugar, debe especificar esa ruta después de -K en el comando anterior.
La razón por la que obtiene el diálogo de frase de contraseña del archivo de clave al conectarse al segundo servidor (sin llave) es probable porque la configuración predeterminada de los servidores SSH es usar primero la autenticación de clave pública, y luego la autenticación de "teclado interactivo".
Debido a que tiene 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 un archivo authorized_keys
permitido.
Hay un puñado de formas para evitar esto, las dos más fáciles es pasar una bandera en la línea de comandos o agregarla como un elemento de configuración permanente en el archivo ~/.ssh/config
.
-
Al conectarse al servidor secundario / sin llave, puede agregar -o "PubkeyAuthentication = no" al conectarse. Algo como ssh -o "PubkeyAuthentication=no" me@devserver2
.
-
Abre ~/.ssh/config
en tu editor de texto favorito, créalo primero si es necesario e ingresa lo siguiente:
Host devserver2
User me
PubkeyAuthentication no
Ahora, si simplemente escribe ssh devserver2
, se leerá y usará la configuración del nombre de usuario y la clave de publicación, y se le pedirá su contraseña y nada más.
( Nota: Reemplace devserver2 con el nombre de host real del servidor. Alternativamente, elija un buen nombre de host, como devserver2, y agregue una propiedad entre User y PubkeyAuthentication llamada 'Hostname' y ponga el nombre o la dirección IP del servidor allí. Luego, simplemente puede escribir 'ssh devserver2' y todas las propiedades de configuración trabajarán con su magia respectiva.)