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:

  • Abrir una terminal en el computador.
  • Escribir uno de los siguientes comandos:

ssh <username>@ssh2.inf.utfsm.cl ssh <username>@ssh3.inf.utfsm.cl

Debe reemplazar <username> por su nombre de usuario.

Esto solicitará establecer una conexión con al servidor ssh2 el cual lo redirigirá algún computador del laboratorio que se encuentre con poca carga.

  • En caso de ser la primera conexión preguntará si estamos seguros de querer conectarnos, a lo que se debe responder yes.
  • Escribir la contraseña de la cuenta.

Desde Windows:

  • Descargar la aplicación PuTTY.
  • Al abrir la aplicación aparecerá una ventana, en la sección Host Name escribir:

ssh user@ssh2.inf.utfsm.cl ssh user@ssh3.inf.utfsm.cl

  • Hacer click en Open.
  • Si es la primera conexión aparecerá una ventana emergente a la cual se debe hacer click en Sí.
  • Escribir el nombre de usuario.
  • Escribir la contraseña.

Una vez establecida la conexión

Tras ingresar su contraseña, entrará a una sesión por terminal con el intéprete bash, y podrá ejecutar comandos como cd o ls para navegar por sus archivos y, por ejemplo, editar documentos con el editor vim.

Enviar archivos a la cuenta

Desde la terminal Ud. también puede enviar archivos a su cuenta a través del protocolo SSH, el comando para esto sería:

scp -R <origen> <username>@ssh2.inf.utfsm.cl:~/<destino>

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

Para esto sólo tiene que utilizar el comando a la inversa:

scp -R <username>@ssh2.inf.utfsm.cl:~/<origen> <destino>

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 <comando a ejecutar>

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 <id de la screen>

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/known_hosts to get rid of this message. Offending key in /home/user/.ssh/known_hosts:<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 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).

Fecha: 20 Mar, 2016
Autor: mpierola