¡Esta es una revisión vieja del documento!
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 MoabXterm
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 clúster no es necesario especificar una password pues la llave SSH pública que nos proporcionó en el formulario de alta ha sido copiada en el directorio “home” de $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 recordarse de hacer una copia de su carpeta .ssh, donde se almacenan sus llaves y configraciones,
- 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 informacion 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
Crear Llaves SSH
Como 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.
Como creo un nuevo par de llaves SSH en Windows?
Para usuarios de Windows se recomienda seguir el siguiente pocedimiento utilizando MoabXterm
Que 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 maquina desde la que nos queremos 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 $HOME/.ssh/id_rsa.pub como pieza adjunta por mail.
Es posible acceder al cluster desde otras terminales diferentes a la que usé para crear la clave pública ssh?
Si, es posible. Para ello existen dos maneras de hacerlo:
1. Copiar la llave privada en todas las terminales, es decir transferir el fichero $HOME/.ssh/id_rsa original a la nueva computadora:
scp $HOME/.ssh/id_rsa usuario@mi.otra.computadora:~/.ssh
2. Generar un par de llaves en cada computadora y copiar la llave pública en el cluster. Para ello se debe ejecutar el comando ssh-keygen en la computadora nueva, visualizar el contenido de la llave pública, conectarse al cluster a partir de la terminal que se usa habitualmente y copiar el contenido de la llave pública apenas generada en el fichero $HOME/.ssh/authorized_keys que se encuentra en el cluster. Si por alguna razón no puede conectarse al cluster, puede comunicar la la public key a los administradores.
No logro conectarme al cluster con la llave SSH
¿que puedo hacer antes de contactar el 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@mendieta.ccad.unc.edu.ar
4. Si aun así no funciona, pruebe nuevamente con el siguiente comando:
SSH_AUTH_SOCK=0 ssh -i $HOME/.ssh/id_rsa $USUARIO@mendieta.ccad.unc.edu.ar
Si con este comando la conexión funciona, debe simplemente agregar la llave privada al repositorio del agente de autenticación:
ssh-add
La conexión al cluster funciona forzando el uso de la llave SSH con ssh -i, que puedo hacer antes de contactar el soporte?
Si la conexión funciona forzando la utilización de la llave SSH, significa que el problema no se encuentra en el cluster sino en el cliente. En la mayoría de los casos este problema se soluciona modificando el fichero /etc/ssh/sshd_config presente en el sistema de su PC. Debe buscar en el mismo la directiva IdentityFile y modificarla de la siguiente manera:
IdentityFile ~/.ssh/id_rsa
Intenté todo pero sigue fallando
Es momento de contactar a al soporte, al hacerlo por favor adjunte la salida del comando
ssh -vvv $USUARIO@mendieta.ccad.unc.edu.ar
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. Para ello existen diferentes métodos. A continuación presentamos los 3 más utilizados. Todos estos métodos funcionaran únicamente si las llaves SSH están correctamente configuradas.
1. 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 $HOME/datos_mendieta
Luego se realiza el montaje reemplazando la variable $USER por el nombre de usuario asignado en el cluster:
sshfs $USER@mendieta.ccad.unc.edu.ar:/home/$USER $HOME/datos_mendieta
Comprobar que el repertorio se ha montado correctamente y que se poseen los permisos para operar en el sistema remoto:
ls $HOME/datos_mendieta touch $HOME/datos_mendieta/puedoescribir rm $HOME/datos_mendieta/puedoescribir
Para desmontar el repertorio se utiliza el siguiente comando:
fusermount -u $HOME/datos_mendieta
2. Montaje del directorio al arranque:
Es posible configurar el sistema cliente para que monte automáticamente el repertorio home del cluster al arranque. Para ello debemos seguir algunos pasos muy sencillos. En primer lugar asegurarse que el usuario pertenece al grupo fuse o bien que puede acceder en lectura al fichero /etc/fuse.conf. El fichero /etc/fuse.conf debe contener la siguiente instrucción:
user_allow_other
Si no es el caso, editar el fichero con el superusuario root.
Una vez hecho esto, agregar la siguiente linea al fichero /etc/fstab :
$USER@mendieta.ccad.unc.edu.ar:/home/$USER $MOUNTPOINT fuse.sshfs auto,_netdev,user,idmap=user,transform_symlinks,identityfile=$HOME/.ssh/id_rsa,allow_other,default_permissions, 0 0
El reemplazo de las variables se hará de esta manera:
$USER es el nombre de usuario en el cluster mendieta
$MOUNTPOINT es el nombre del repertorio local donde se quieren montar los datos remotos. Debe contener el path absoluto, por ejemplo /home/maradona/datos_mendieta
$HOME es el repertorio home del usuario local donde se encuentra la llave SSH privada.
3. Montaje del directorio desde la interfaz gráfica:
Los usuarios de GNOME o KDE pueden si así lo desean montar el repertorio home del cluster directamente a partir de la interfaz gráfica. Los pasos a seguir son realmente sencillos, a saber:
GNOME (Nautilus)
1. Abrir un gestor de archivos
2. Hacer click en Archivo→ 3. En el cuadro de dialogo colocar los siguientes parámetros:
servidor: mendieta.ccad.unc.edu.ar tipo: ssh carpeta: /home/$USUARIO (reemplace por el correspondiente) usuario: $USUARIO contraseña: si desea crear un atajo para que quede configurada la conexion tildar //añadir marcador//