Estoy confundido por la diferencia en el comportamiento de los clientes ssh que veo en dos hosts diferentes. Solo para ser claros, este es el escenario:
- "macbox" OS X utilizando OpenSSH_5.2p1 ssh client
- "sunbox" Solaris 10 OpenSSH_3.9p1 ssh client
- "linuxbox" Ubuntu ejecutando OpenSSH_5.8p1 sshd server
Los tres hosts tienen un usuario con el mismo nombre. Quería configurar cosas para que macbox y sunbox pudieran ssh en linuxbox usando solo las teclas ssh, sin contraseñas. En linuxbox, configuré sshd_config para permitir esto:
HostbasedAuthentication yes
# To enable empty passwords, change to yes (NOT RECOMMENDED)
PermitEmptyPasswords no
Note el comentario. Seguí el consejo y no cambié la configuración de las contraseñas vacías. Entendí que eso significa que linuxbox no permitirá la autenticación basada en host con claves públicas que no tienen una contraseña establecida para esa clave.
Luego, en macbox y en sunbox, hice esto:
ssh-keygen -v -t dsa
Y en ambos, cuando me lo pidió ssh-keygen, proporcioné una contraseña para el par de claves que estaba generando. A continuación, copié el contenido de "id_dsa.pub" (tanto de macbox como de sunbox) en el archivo ~ / .ssh / authorized_keys en linuxbox.
Desde macbox, usando el programa Terminal.app incorporado, intenté ssh-ing en linuxbox. De repente, estaba viendo el indicador de contraseña de GUI, lanzado por Terminal, pero no en el terminal, y quería la contraseña para el par de claves que había generado. Ingresé la contraseña que le había dado al programa ssh-keygen cuando generé esas claves. Yo NO marque la casilla que ofrece recordar la contraseña en el programa Keychain.app de mi Mac. Hice clic en Aceptar y me metí en un shell en la caja de Linux.
Luego, escribí "exit", luego ssh-ed de nuevo en linuxbox por segunda vez, pero esta vez Terminal.app no pidió una contraseña. Repetí esto varias veces.
Luego fui al sunbox, probé un ssh a linuxbox. Sunbox solicitó la contraseña de la clave pública a través del shell (ya que no uso un entorno GUI / X11 allí). Proporcioné la contraseña y me metí en el shell en linuxbox. Luego escribí "exit", luego traté de volver a ssh en linuxbox y me pidieron nuevamente la contraseña. A diferencia del cliente ssh en macbox, el cliente ssh de sunbox me pide la contraseña cada vez que ssh to linuxbox.
¿Es este un tipo de facilidad de uso de Mac OS X no documentada? ¿O es un ajuste en ssh_config? El macbox tiene todo comentado en ssh_config. El sunbox ssh_config tiene algunas líneas sin comentarios:
GSSAPIAuthentication yes
GSSAPIDelegateCredentials yes
PreferredAuthentications gssapi-with-mic,publickey,password,keyboard-interactive
He leído la página del manual en ssh_config, pero no veo cómo estas configuraciones podrían explicar la diferencia en los comportamientos del cliente ssh. Incluso fui al archivo Keychain.app del usuario en el macbox y busqué una contraseña guardada para el par de llaves, y no hay ninguna guardada allí.
¿Alguien puede explicar por qué tengo que escribir una contraseña clave en sunbox cada vez que ssh a linuxbox, pero nunca (nuevamente) tuvo que escribir una contraseña clave después de la primera vez que ssh-ed para ¿linuxbox desde macbox?