BandaAncha.eu

  • 🔍 en 📰 artículos ⏎
  • 🔍 en 💬 foros ⏎
  • 🔍 en 👇 este 💬 foro ⏎
  • 🔍 en 👇 este 💬 tema ⏎
Regístrate Regístrate Identifícate Identifícate

Server SSH + Putty

quilloquepasa

Intento crear una conexión en un servidor OpenSSH o FreeSSH -cualquiera de ellos, pues para el caso es irrelevante- a través del cliente Putty con intercambio de claves criptos pública y privada.

Para ello sigo los siguientes pasos (el ejemplo es referido a OpenSSH):

  1. Genero dos pares de claves: RSA (ssh_host_rsa_key y ssh_host_rsa_key.pub) y DSA (ssh_host_dsa_key y ssh_host_dsa_key.pub).
  2. Vuelco la clave privada RSA (ssh_host_rsa_key) en el equipo cliente.
  3. Ya en el equipo cliente importo la clave desde PuttyGen para luego exportarla con passphrase creada a formato soportado por Putty (.ppk).
  4. Por último desde la configuración del cliente Putty importo la clave generada con PuttyGen (.ppk) para crear la conexión al servidor.

Bien, pues el servidor no me reconoce la clave cuando intento conectar (Event Log: Keyboard-interactive authentication refused), así que es evidente que algo no realizo correctamente.

¿Tal vez los pasos son incorrectos?

¿Quizás la clave que deba exportar al cliente sea otra?

Entiendo que los algoritmos de cifrado están soportados por cliente y servidor, así que descarto problemas de parámetros de autenticación (SSH-2 RSA, 1024 ó 2048).

Los parámetros de autenticación de sshd_config se encuentran en el siguiente estado:

  • RSAAuthentication no (este ha sido modificado a yes para realizar pruebas sin resultado positivo alguno)
  • PubkeyAuthentication yes

Le estaré eternamente agradecido a aquél que encuentre solución a mi problema. Tendrá pagadas todas las cervezas que se beba este finde. Gracias.

P.D.: Por supuesto me he leído todos los tutos habidos y por haber sobre el asunto.

BocaDePez
BocaDePez

Creo que tienes un poco de lío. La clave privada es la que identifica al usuario que se quiere conectar. Lo que pasa es que lo hace en nombre de un usuario local del servidor.

Con puttykeygen has de crear una pareja de claves, que identiifcan al cliente. Subes la pública al servidor y se la añades al authorized_keys (authorized_keys2 para dsa) del usuario local con el que te quieres logar.

Cuando te conectas, te pedirá un usuario local al servidor. Dependiendo del que uses, buscará en un fichero authorized_keys(2) o en otro.

Con putty no queda muy claro: En el mundo unix tienes el usuario de tu máquina cliente, con sus claves privadas, y el usuario de la maquina servidor, que autoriza a otro remoto a conectarse en su nombre incluyendo su clave pública en el fichero de autorizados.

🗨️ 9
quilloquepasa

Ok. He realizado lo que me has indicado, pero no tengo muy claro el path de autorized_keys -he de crearlo por vez primera- y cómo debo indicar al sshd_config dónde buscar. Por defecto la línea correspondiente se encuentra comentada y con la siguiente ruta:

#AuthorizedKeysFile .ssh/authorized_keys

authorized_keys lo he creado en el home del usuario, donde se encuentra .ssh, tal y como indica la documentación de OpenSSH.

Descomenté la línea y copié ~/.ssh en el path que indica sshd_config, en ../OpenSSH/.ssh, que entiendo es donde busca, aunque tampoco ha servido de nada.

Muchas gracias.

quilloquepasa

ja, ja, ja, ja, ja, ja, EUREKA.

Para FreeSSHd lo tenía todo bien excepto en Authentication -> Password authentication: debía seleccionar Disabled o Allowed ¡Seré animal!

Para OpenSSH reconfiguro sshd_config en el sentido siguiente:

AuthorizedKeysFile /.ssh/authorized_keys

He trasladado .ssh al directorio de instalación de OpenSSH, así que ya sólo me queda descubrir la ruta correcta en AuthorizedKeysFile para llevármelo a su sitio: %HOMEPATH%/.ssh. Esta no me la acepta sshd_config.

Cómo diablos le digo al sshd_config, en AuthorizedKeysFile, que busque en %homepath% o %userprofile%/.ssh/authorized_keys, pero que me lo acepte, claro.

He probado a crear nuevas variables de entorno, con un solo %, con dos %, con /, con \... Grrrrrr, he agotado todas las posibilidades, así que es hora de tomar una cerveza.

La madre que le parió al Bill Gates. B-)

Muchas gracias por tu ayuda compañero. Te debo unas cuantas birras.

🗨️ 6
quilloquepasa

Para "el cabrero".

La ruta absoluta del archivo es: C:\Documents and Settings\usuario\.ssh\authorized_keys

Al sshd_config no le puedes indicar la ruta tal cual porque no te la acepta, ya sabes, los dichosos espacios en blanco de Windows y las barras invertidas, tampoco la soporta entrecomillada, así que la alternativa que se me ocurre pasa por usar variables del sistema, es decir:

%userprofile%/.ssh/authorized_keys o %homepath%/.ssh/authorized_keys

Decirte que si dejas la ruta relativa por defecto (.ssh/authorized_keys), tampoco sirve.

Los resultados a la alternativa son negativos.

Buscando en la documentación de OpenSSH encuentro esto, que no me aclara nada, sino que me confunde más aún:

AuthorizedKeysFile
Specifies the file that contains the public keys that can be used
for user authentication. AuthorizedKeysFile may contain tokens
of the form %T which are substituted during connection set-up.
The following tokens are defined: %% is replaced by a literal
'%', %h is replaced by the home directory of the user being au-
thenticated and %u is replaced by the username of that user. Af-
ter expansion, AuthorizedKeysFile is taken to be an absolute path
or one relative to the user's home directory. The default is
``.ssh/authorized_keys''.

Gracias, cabrero.

🗨️ 5
BocaDePez
BocaDePez

Sí, te iba a pedir que hicieras un echo $HOMEPATH

Por ejemplo, si vas a leer el contenido de un fichero de texto que está en la ruta " Documents and Settings/usuario/.ssh/hola.txt" , pues sería así, pero creo que eso ya lo sabes:

cat Documents\ and\ Settings/usuario/.ssh/hola.txt
Hola mundo.

Si vas a leer desde GNU/Linux algo que está dentro del Windows entonces tendrías que señalar "cat /ruta_partición_montada/Documents\ and\ Settings/usuario/.ssh/hola.txt"
Hola mundo.

🗨️ 4
BocaDePez
BocaDePez
🗨️ 1
Jazmin