Tabla de Contenidos

Conexión ssh

ssh o Secure Shell, es un protocolo de administración remota que permite controlar sistemas remotos de manera encriptada.

OpenSSH divide la responsabilidad en dos programas uno cliente y otro servidor. Para conectarte a los servidores de IATE bastará con el programa cliente.



Conexión al cluster


Para poder acceder a los equipos de computo debe contar con un cliente ssh. Casi la totalidad de las distribuciones LINUX ya lo tienen preinstalado. Si éste es su caso pude ejecutar el siguiente comando desde una terminal:

ssh $USUARIO@<nombre del servidor>

En caso que quisiera iniciar lo conexión desde una maquina WINDOWS recomendamos el programa MobaXterm

La variable $USUARIO ha sido comunicada en el mail de confirmación de creación de la cuenta y será su nombre de usuario.
Para conectarse al cluster no es necesario especificar una password pues la llave SSH pública que nos proporcionó en el formulario de alta ha sido ingresada para su $USUARIO.

Llave pública/privada


Principios básicos para tener en cuenta:

Crear Llaves SSH


¿Cómo creo un nuevo par de llaves SSH en Linux?

Puede generar un nuevo par de llaves SSH desde el terminal de un sistema GNU/Linux ejecutando el siguiente comando:

$ ssh-keygen
$ cat .ssh/id_rsa.pub

Comunicar la public key a los administradores.

¿Cómo creo un nuevo par de llaves SSH en Windows?

Para usuarios de Windows se recomienda seguir el siguiente procedimiento utilizando MobaXterm

¿Qué significa exactamente comunicar la public key a los administradores?

Las llaves generadas por el comando ssh-keygen se almacenan por defecto en el directorio $HOME/.ssh/ de la máquina con la cual se desea conectar. Los ficheros id_rsa e id_rsa.pub contienen respectivamente las llaves privada y pública. Para poder garantizar el acceso al cluster, los administradores necesitan el contenido del fichero id_rsa.pub. El mismo se puede obtener gracias al comando cat:

$ cat $HOME/.ssh/id_rsa.pub

o bien puede enviar directamente el fichero id_rsa.pub como adjunto por mail.

¿Es posible acceder al cluster desde otras terminales diferentes a la que usé para crear la clave pública ssh?

Sí, es posible.

Una forma sencilla es copiar los archivos de llaves a la nueva computadora o bien generar un par de llaves nuevas en cada computadora para luego comunicar cada llave pública a los administradores de manera que se puedan agregar a su usuario en los equipos de cómputo.

No logro conectarme al cluster con la llave SSH

¿Qué puedo hacer antes de contactar a soporte?

1. Asegúrese que los permisos del fichero que contiene la llave privada son correctos ejecutando el siguiente comando:

$ chmod 600 $HOME/.ssh/id_rsa

2. Asegúrese que los permisos de la carpeta que contiene la llave privada son correctos ejecutando el siguiente comando:

$ chmod 700 $HOME/.ssh

3. Intente conectarse al cluster forzando el uso de la llave privada:

$ ssh -i  $HOME/.ssh/id_rsa $USUARIO@<nombre del servidor>

4. Si aún así no funciona, contacte a soporte describiendo el problema y adjuntando la salida de:

$ ssh -vvv $USUARIO@<nombre del servidor>

Gestión de datos a distancia


Es posible montar localmente el directorio /home/$USUARIO del cluster y de este modo realizar todas las operaciones sobre los archivos (copiar, renombrar, editar, etc.) con las herramientas de preferencia instaladas en su PC de trabajo. El método funcionará únicamente si las llaves SSH están correctamente configuradas y tiene instalado sshfs en su sistema.

Montaje del directorio con sshfs:

En primer lugar se debe crear en el sistema cliente un repertorio que utilizaremos a continuación como punto de montaje local:

$mkdir $USUARIO/datos_nombre

Luego se realiza el montaje reemplazando la variable $USUARIO por el nombre de usuario asignado en el cluster:

$ sshfs $USUARIO@<nombre del servidor>:directorio_de_salida  $HOME/datos_nombre

para desmontar la unidad:

$ sudo umount /home/$USUARIO/datos_nombre

El archivo Config

Ssh admite muchos parámetros para su configuración y podemos tener dentro de la carpeta .ssh un archivo de configuración que agrupe lo que necesitamos, por defecto este archivo se llama config aunque podemos tener varios e invocarlos mediante ssh -F /path/to/configfile
para que todo funcione correctamente tanto las carpetas y los archivos dentro de ella deben tener los permisos válidos, los que suelen cambiar al trasladarlos de un equipo a otro, tener cuidado con la copia.

Contenido del archivo config

Lo mejor es ver un ejemplo de su estructura, es bastante simple y nos ayuda a tener de manera ordenada las diferentes configuraciones

$ cat .ssh/config

host *
# aqui va el nombre de tu usuario para los equipos del cluster
user usuario123 

host perrine
hostname iate.oac.uncor.edu

host clemente
hostname clemente
forwardagent yes
proxyjump perrine

host sersic
hostname sersic
forwardagent yes
proxyjump perrine

Podemos detallar tantas conexiones a diferentes equipos como sea necesario y explorar más opciones de configuracion para aplicar. Este ejemplo aplica para las conexiones desde el exterior y para su uso sólo basta con ingresar:

$ ssh clemente


Ya no necesitamos recordar todos esos datos de conexión y podremos acceder al servidor de una manera mucho más ágil.