====== Conexión ssh ======
ssh o **S**ecure **Sh**ell, 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@
En caso que quisiera iniciar lo conexión desde una maquina WINDOWS recomendamos el programa [[:wiki:mobaxterm|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:
* No debe comunicar el contenido de la //private key//.
* En caso de reinstalación del sistema operativo recordar hacer una copia de su carpeta .ssh, donde se almacenan sus llaves y configuraciones.
* En caso de pérdida de la //private key// (por ejemplo luego de la reinstalación del sistema) comunicar a los administradores la nueva //public key//.
* La seguridad de su información y de los recursos que utiliza depende del uso responsable de los mecanismos de autentificación. En caso de hurto o robo de la //private key// (o de la computadora en la cual se encuentra almacenada) comunicar por mail [[soporte@iate.conicet.unc.edu.ar |soporte@iate.conicet.unc.edu.ar ]]
===== 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 [[:wiki:mobaxterm|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@
4. Si aún así no funciona, contacte a soporte describiendo el problema y adjuntando la salida de:
$ ssh -vvv $USUARIO@
===== 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@: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 *
user jusuario
host perrine
hostname iate.oac.uncor.edu
host clemente
hostname clemente
forwardagent yes
proxyjump jusuario@iate.oac.uncor.edu
host sersic
hostname sersic
forwardagent yes
proxyjump jusuario@iate.oac.uncor.edu
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
{{ :wiki:clemente.png?nolink&653x426 }} \\ Ya no necesitamos recordar todos esos datos de conexión y podremos acceder al servidor de una manera mucho más ágil.