
Ya vimos en un artículo anterior qué es y como realizar una conexión con SSH. Un protocolo mediante el cual podemos acceder a un ordenador o máquina remota a través de la consola de comandos o terminal, y hacer uso de él como si estuviésemos físicamente frente a frente.
Ahora os vamos a mostrar cinco de los comandos básicos, de consola o terminal, que suelen usarse a la hora de realizar cualquier tipo de conexión, o una vez conectados mediante SSH.
1. Cómo conocer la versión del cliente SSH que estás usando
A veces puede ser necesario identificar al cliente SSH que estás ejecutando actualmente y el número de versión correspondiente, el cual puedes obtener a partir del siguiente comando:
1 2 3 | (local) $ ssh -V OpenSSH_7.3p1, LibreSSL 2.4.1 |
2. Cómo iniciar sesión con el PC o equipo remoto
La primera vez que conectes al ordenador remoto, se mostrará un mensaje de que no se ha podido establecer la autenticidad de la máquina remota, te mostrará la clave RSA y te preguntará si quieres continuar:
1 2 3 4 5 | (local) $ ssh root@dominio.com The authenticity of host 'dominio.com (162.XXX.XXX.XXX)' can't be established. RSA key fingerprint is SHA256:lkYwsVbRtSp6d0ljj49p5oU2/LlEPcMrMGtVHd5M/R0. Are you sure you want to continue connecting (yes/no)? yes |
Si tecleas ‘yes‘ o ‘si‘, dependiendo del idioma en que te lo muestre, y pulsas Intro, esta información se guardará en un archivo en tu PC local para futuras conexiones.
1 2 3 4 | Warning: Permanently added 'dominio.com,162.XXX.XXX.XXX' (RSA) to the list of known hosts. root@dominio.com's password: (remoto) [root@dominio ~]# |
La segunda vez que conectes solo te pedirá la contraseña, ya que la clave de la máquina remota ya se habrá guardado en la lista de hosts conocidos por el cliente SSH.
1 2 3 4 | (local) $ ssh root@dominio.com root@dominio.com's password: (remoto) [root@dominio ~]# |
Esto será así a no ser que algún aspecto de la máquina remota cambie, como una actualización o reinstalación del servidor remoto de SSH, o alguna actividad maliciosa por una tercera parte, como un ataque man-in-the-middle, con lo que se mostrará el siguiente mensaje:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ 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 a host key has just been changed. The fingerprint for the RSA key sent by the remote host is SHA256:hJ3rufgbBEBzVJ3Ua487BR2m1m30RKzogZlhRtdFf24. Please contact your system administrator. Add correct host key in /Users/XXXXXXXX/.ssh/known_hosts to get rid of this message. Offending RSA key in /Users/XXXXXXXX/.ssh/known_hosts:2 RSA host key for dominio.com has changed and you have requested strict checking. Host key verification failed. (local) $ |
3. Cómo transferir archivos desde y hacia el host remoto
Cuando se trabaja con un cliente SSH es lógico que surja la necesidad de enviar y obtener archivos hacia y desde el equipo remoto. Para ello, usamos los siguientes comandos:
Para el envío:
1 2 3 4 5 6 | //Enviar archivos desde nuestro ordenador al equipo remoto (local)$ scp archivoLocal.txt root@dominio.com:/home/archivoRemoto.txt root@dominio.com's password: archivoLocal.txt 100% 71KB 123.0KB/s 00:00 |
Para la obtención o recepción:
1 2 3 4 5 6 | //Obtener archivos desde el equipo remoto a nuestro ordenador (local)$ scp root@dominio.com:/home/archivoRemoto.txt archivoLocal.txt root@dominio.com's password: archivoLocal.txt 100% 71KB 168.0KB/s 00:00 |
En ambos casos, el comando te solicitará la contraseña, y una vez introducida se realizará la subida o bajada del archivo en cuestión, a la carpeta o directorio indicado.
4. Cómo realizar una depuración sobre la conexión para solucionar posibles problemas
A veces es necesario ver los distintos mensajes de depuración que pueden darse en la conexión, con el fin de solucionar posibles problemas con el SSH. Para ello, simplemente hemos de añadir la opción -v a los parámetros de nuestra conexión:
1 2 3 4 5 6 7 8 9 10 11 12 13 | (local) $ ssh -v root@dominio.com OpenSSH_7.3p1, LibreSSL 2.4.1 debug1: Reading configuration data /etc/ssh/ssh_config debug1: /etc/ssh/ssh_config line 20: Applying options for * debug1: Connecting to dominio.com [162.XXX.XXX.XXX] port 22. debug1: Connection established. debug1: key_load_public: No such file or directory debug1: identity file /Users/XXXXXXXX/.ssh/id_rsa type -1 debug1: key_load_public: No such file or directory debug1: identity file /Users/XXXXXXXX/.ssh/id_rsa-cert type -1 ... ... |
5. Cómo alternar entre la máquina local y la máquina remota
Una vez iniciada la sesión con la máquina remota, si necesitas volver a tu equipo local, no hace falta que cierres la sesión SSH para después volverla a abrir y seguir trabajando en remoto, sino que simplemente puedes intercambiar entre sesiones dejando la conexión con el cliente SSH como proceso en segundo plano.
Para ello, una vez que hayas conectado mediante SSH al ordenador remoto, y quieras alternar con tu ordenador en local, pulsa la tecla ~ y seguidamente Ctrl+Z. Te aparecerá algo parecido a esto.
1 2 3 4 | (remoto) [root@dominio ~]# ~^Z [suspend ssh] [1]+ Stopped ssh root@dominio.com (local) $ |
Si ahora quieres volver a tu máquina remota, simplemente ejecuta el comando siguiente:
1 2 3 4 5 | (local) $ fg %1 ssh root@dominio.com (remoto) [root@dominio ~]# |
Con estos cinco comandos, que puedes ejecutar desde la consola o terminal, puedes hacer más fácil las conexiones que realices mediante el protocolo SSH a tu máquina remota, pudiendo realizar un intercambio sencillo de archivos y una alternancia entre sesiones en las que no tengas que cerrarlas para poder usar ambas, además de otras posibilidades mostradas.
