SSH-Cover

Conexión via SSH

SSH es un protocolo de red que permite iniciar sesión en un computador remoto, se caracteriza por ser seguro (encriptación) y por mantener la integridad de los datos.

Es posible utilizar los equipos del laboratorio de forma remota, para hacer esto se deben seguir los siguientes pasos:

Desde Linux o Windows:

  • Abrir una terminal en el computador.
  • Escribir uno de los siguientes comandos:
ssh <user>@ssh2.inf.utfsm.cl
ssh <user>@ssh3.inf.utfsm.cl
ssh <user>@ssht.labcomp.cl

Debe reemplazar <user> por su nombre de usuario.

Esto solicitará establecer una conexión con el servidor ssh el cual lo redirigirá algún computador del laboratorio.

  • En caso de ser la primera conexión preguntará si estamos seguros de querer conectarnos y les aparecerá lo siguiente:
The authenticity of host '<conexion ssh utilizada> (204.87.169.X), X=20 -> ssh2, X=7 -> ssh3 o X=2 -> ssht' can't be established.
ECDSA key fongerprint is SHA256:1pOjlHzgbmDnhzBH/VyquHfeHAhjGklCqsCrHMV+UD0. Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
  • A lo que se debe responder yes, y les aparecerá un mensaje como el siguiente para finalmente introducir nuestra contraseña.
Warning: Permanently added '<conexion ssh utilizada> (IP)' (ECDSA) to the list of known hosts                                                                                                                                                       <user>@<conexion ssh utilizada> password:

Una vez se haya establecido la conexión, luego de introducir su contraseña usted se encontrara en una sesión abierta por terminal, en un intérprete llamado bash, en el cual podrá ejecutar comandos básicos como cd (Permite entrar a las carpetas), ls (para visualizar el contenido de la carpeta), para crear archivos o editar alguno con su editor favorito, vimnano.

¿Qué puedo hacer a través de ssh?

Bueno, para ello tenemos las siguientes funciones:

  • Enviar archivos a la cuenta: Con esto usted puede enviar archivos o carpetas a su cuenta, para esto el comando a utilizar es: 
scp -r  <ruta carpeta/archivo a enviar> <user>@<servidor>:<ruta a dejar carpeta/archivo>
<user>@<servidor> password:

Ejemplo:

scp -r ~/Desktop/Trabajos manunez@ssht.labcomp.cl:~/Desktop/Cosas_U/
scp ~/Desktop/Trabajos/Tarea.py manunez@ssht.labcomp.cl:~/Desktop/Cosas_U/Programacion/

Nota: El parámetro -r es para copiar recursivamente, cuando se trata de una carpeta, debe quitarlo si sólo quiere copiar un archivo.

Recuerde que se utiliza desde su computador, no una vez haya accedido con el comando ssh.

  • Recibir archivos de la cuenta: Con esto podemos enviar archivos/carpetas desde nuestra cuenta ssh a nuestro computador (todo esto desde su computador), para esto debe utilizar un comando muy similar al anterior:
scp -r <user>@<servidor>:<ruta carpeta/archivo a enviar> <ruta en su computador a dejar el archivo>
<user>@<servidor> password:

Ejemplo:

scp -r manunez@ssht.labcomp.cl:~/Desktop/Cosas_U/ ~/Desktop/

scp manunez@ssht.labcomp.cl:~/Desktop/Cosas_U/Proyecto.py ~/Desktop/Proyectos/

scp manunez@ssht.labcomp.cl:~/Desktop/Cosas_U/Proyecto.py C:/Users/maickol/Escritorio/

Otras consideraciones

Dejar un comando en ejecución

Si Ud. quiere dejar corriendo un programa por más tiempo de lo que dure la conexión, deberá utilizar el comando screen, de la siguiente manera:


screen 

Se abrirá una nueva tty, de la que podrá escapar con la combinación de teclas Ctrl+A Ctrl+D, pero que quedará corriendo en segundo plano incluso hasta después de que Ud. se desconecte.

Para listar las screens corriendo actualmente:


screen -list

Para retomar creen en ejecución:


screen -r 

En caso de «Remote Host Identification Has Changed»

La primera vez que Ud. se conecte a cualquiera de los servidores ssh del laboratorio, es posible que su computador guarde la identificación de la máquina a la que se conecte, es posible que, por razones de mantención, renovemos la identificación MAC de los servidores y, por motivos de seguridad el comando ssh le falle con un error «Remote Host Identification Has Changed».

Un error como el siguiente:


@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
5c:9b:16:56:a6:cd:11:10:3a:cd:1b:a2:91:cd:e5:1c.
Please contact your system administrator.
Add correct host key in /home/user/.ssh/knownhosts to get rid of this message.
Offending key in /home/user/.ssh/knownhosts:<numero>
RSA host key for ras.mydomain.com has changed and you have requested strict checking.
Host key verification failed.

Si Ud. se encuentra en apuros podría resolver esto eliminando la línea que contiene la identificación anterior (que no coincide con la nueva) en el archivo known_hosts (la ubicación de este archivo y el número de línea se indican en el mensaje de error).

Se puede utilizar, por ejemplo, el siguiente comando para borrar de manera más automática la línea del archivo known_host que produce el error en el ejemplo anterior:


sed -i <numero>d /home/user/.ssh/known_hosts

Reemplace <numero> por el número que entregue el error.

No obstante este error también podría aparecer si alguien está espiando su conexión y debe estar seguro de que ese no es el caso, por ende, sería bueno que antes de hacer este procedimiento consulte a los ayudantes del laboratorio, si hubo un cambio de identificación (que, por cierto, son muy poco frecuentes).


Además existen otras formas de poder acceder vía Windows, a continuación presentamos las más usadas:

1.- WinScp (interfaz gráfica para mover documentos)

2.- Bash

*Hay que mencionar que para poder llevar a cabo la conexión ssh desde Windows por cualquier camino, hay que tener instalado putty, que es el que nos generará la conexión. Se puede descargar directamente desde su página oficial

1. WinScp (interfaz gráfica para mover documentos)

  • Descargar el programa WinSCP desde su página oficial
  • Instalar y seguir las Instrucciones
  • Una vez instalado y abierto el programa rellenar los datos de la pestaña de conexion con:
    • Nombre o IP del servidor: ssh3.inf.utfsm.cl o ssh2.inf.utfsm.cl
    • Usuario: nombre de usuario en el DI
    • Contraseña: contraseña del usuario

    Cabe destacar que el nombre de usuario y contraseña no son del todo necesarios, si no se ingresan, una vez se establezca la conexión el programa los pedirá automáticamente

  • Si se desea conectar a un tarro en específico se debe entrar por tunel. Ingresamos a «Avanzado» en la pestaña de sesión, vamos a Conexión -> Túnel habilitamos «Conectar por túnel SSH» e ingresamos:
    • IP o nombre: ssh3. inf.utfsm.cl o ssh2.inf.utfsm.cl
    • Usuario y contraseña del DI.

    Aceptamos y en la pestaña de sesión en «Nombre o IP del servidor» elegimos el nombre del computador específico al que queramos conectarnos (e.g. baron, cordillera, etc)

  • Sea cual sea la conexión que elijamos guardamos y damos a «Conectar» y debería mostrarnos la interfaz gráfica de nuestro escritorio para poder mover de manera fácil archivos desde nuestra computadora al Laboratorio de Computación o viceversa

2. Bash

Una vez tengamos instalado el programa Putty en nuestra computadora, vamos a UPDATE & SECURITY (actualización y seguridad en español), en la configuración de Windows 10.

En la lista de la izquierda seleccionamos «For developers» (Para programadores), y en la sección que se abrirá en las funciones para programadores seleccionamos «Developer mode» (reiniciamos en caso que se nos pida).

Con el modo de programador activado, vamos a inicio de windows y buscamos «Turn Windows Features on or off» (Activar o Desactivar las características de Windows), y en la ventana que nos aparecerá buscamos y activamos el «subsistema de Windows para linux», apretamos ok y cerramos.

Presionamos la combinación de teclas Windows + R para abrir la herramienta de ejecución de windows y escribimos «bash», con esto se abrirá una consola en la que se nos preguntará si deseamos instalar Ubuntu en Windows, seguimos los pasos de la instalación en los cuales se nos descargará lo necesario para hacer funcionar el subsistema además de pedirnos crear un usuario y contraseña para la nueva sesión de linux que crearemos (no necesariamente debe ser el mismo de Windows).

Con esto podemos entrar directamente usando los comandos comunes de linux como ssh a la red del DI (ssh user@ssh2.inf.utfsm.cl o ssh user@ssh3.inf.utfsm.cl para poder conectarnos a un computador random del Labcomp).

Si aún no permite la entrada:

Si el sistema aún no permite la entrada directa desde ssh con el subsistema instalado, habrá que activar el servidor ssh en ubuntu, para esto, estando en la consola de bash tipeamos:
sudo apt-get install openssh-server.

Con esto deberiamos instalar el paquete básico para poder hacer funcionar ssh, ahora configuraremos el archivo sshd_config, escribimos:
sudo vi /etc/ssh/sshd_config.

Apretamos «/» para poder buscar y escribimos «PermitRootLogin», presionamos «i» para editar y cambiamos el valor actual de la variable por «no», «Escape» para salir del modo de edición.

Apretamos nuevamente «/» para poder buscar y escribimos «PasswordAuthentication», necesitaremos cambiar este valor a «yes».

Hacemos el mismo proceso para cambiar el valor de UsePriviledgeSeparation a «no».

Apretamos «Escape», y apretamos «G» (mayúscula) para poder ir al final del documento, donde agregaremos la linea AllowUsers «user», donde reemplazamos «user» por el nombre de usuario seleccionado al crear la cuenta linux

Apretamos «Escape» para salir del modo de edición y «ZZ» para grabar y cerrar.

De regreso en la consola Bash escribimos sudo service ssh –full-restart para poder reiniciar el servidor ssh, y ahora debería poder conectarse sin problemas.

Publicado por Diego Cattarinich Clavel