====== 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 * # 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 {{ :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.