====== 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.