Skip to content


ssh sin password en Solaris. Troubleshooting

Como ya conocemos el SSH es una herramienta muy útil, incluso para usarla en scripting. Permitiendonos una conexión segura.

En Solaris 9 y 10 tenemos el ssh por defecto instalado en el sistema, en sistemas anteriores tendremos que instalar el openSSH.

Hay una serie de indicaciones obligatorias para que el Sun_SSH funcione sin password:

  1. Los permisos del fichero “authorized_keys” no deben permitir a “group” o “other” editar el fichero.
  2. Los permisos del directorio “$HOME/.ssh/” del usuario destino (a donde intentamos conectar) no deben permitir a “group” o “other” crear ficheros.
  3. Los permisos del directorio “$HOME/” del usuario destino (a donde intentamos conectar) no deben permitir a “group” o “other” crear ficheros o directorios.
  4. La cuenta del usuario destino no debe estar en estado locked. Esto significa que en el fichero “/etc/shadow” para este usuario no debe aparece “*LK*”
  5. La IP address que podemos encontrar dentro del fichero “authorized_keys” como “from=” debe coincidir con la del host desde el que intentamos conectarnos. En caso de usar un Network Address Translation (NAT) este parámetro debe coincidir con la IP del outbound side del NAT.
  6. Cada entrada de un host en el fichero “authorized_keys” debe estar en una sola línea todo el texto sin retornos de carros.
  7. También es conveniente revisar los parámetros “PubKeyAuthentication” este en yes y “AuthorizedKeyFile” este el path al “authorized_keys”, en el fichero “/etc/ssh/sshd_config” , pese a que estos parámetros por defecto tienen los valores adecuados siempre es interesante revisarlos.

Si todo lo anterior ha sido revisado y aun asi no conseguimos hacerlo funcionar, lo mas sencillo es hacer un debug de toda la conexion. Para ello elegimos un puerto libre de nuestro sistema y levantamos una instancia nueva del servidor de ssh en modo debug. Buscamos donde esta nuestro “sshd” y ejecutamos:

sshd -p <puerto_elegido> -d -d

El hosts cliente ejecutamos la peticion de ssh pero con la opción “-v”:

ssh -v <usuario>@<host_servidor>

Con estos nos saldra el log de todo el intento de conexion y leyendo atentamente podremos encontrar algo:

Authentication refused: bad ownership or modes for directory /root

Esto nos indica que los permisos en el directorio $HOME del usuarios no estan de forma correcta. En este caso es el $HOME del usuario root

Para poder conectarse de un host a otro sin password, tenemos que generar el par de claves publicas y privadas en el host desde el que queremos conectarnos al host servidor con “ssh-keygen -t dsa”.Cuando generamos estas claves nos pregunta por una pass-phrase que tenemos que dejar vacio.

Esto nos generara 2 ficheros “id_dsa” uno de ellos con extensión “.pub” cuyo contenido tendremos que poner en el host servidor en el fichero “authorized_keys” teniendo en cuenta los 7 puntos anteriores. Este fichero como hemos comentado anteriormente se encuentra en “$HOME/.ssh/” del usuario del host servidor al que queremos conectarnos sin contraseña.

El objetivo del este post es de troubleshooting y no de explicar como realizarlo.

Para esto ultimo te recomiendo el buenisimo documento en BigAdmin

Setting Up and Debugging SSH Authorized Keys

Chris Harrison, October 2008



Posted in SUN.


One Response

Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.

  1. maximpm says

    pensar que era cosa de permisos…
    gracias!



Some HTML is OK

or, reply to this post via trackback.