:: Photo by Svilen Milev from FreeImages ::
SSH (Secure Socket Shell) es un protocolo usado para acceder a servidores remotos con método encriptado de login y usa por defecto el puerto TCP/IP número 22. (También este puerto se puede modificar)
Este comando servicio es indispensable para cualquier administrador de sistemas.
Vamos a ver unos ejemplos prácticos sobre como usar este comando para conectarnos a otros servidores remotos y algun tip interesante
Estas pruebas se han realizado en un Centos 7 virtual. Se pueden probar conexiónes ssh a tu propio localhost, como veremos
El comando en plano es:
ssh [options] [user@]:server
- Para saber que versión de ssh tenemos
# ssh -V
Que saber la versión también nos indica si tenemos instalado el cliente sde ssh para poder usarlo
- Para acceder al servidor remoto podemos usar la dirección IP o el nombre del host. La primera vez que nos conectemos al servdir remoto hará una advertecia y nos pregunta si estamos seguros de conectar a este server.
Se genera una huella (fingerprint) con SSH que identifica de forma única a este servidor. Puede pasar que este servidor más adelante se reinstale y se cree otra fingerprint por lo que nos dara otra advertencia.
Esto se debe a que difiere el fingerprint que grabó la primera vez y tenemos que tocar el fichero /root/.ssh/known_hosts (root o el usuario que usemos para conectar por ssh) para poder acceder otra vez.
# ssh 192.168.1.10 OR # ssh web.dedalus_bloom.com
En este caso voy a probar en el mismo servidor con localhost y el usuario dedalus
# ssh dedalus@localhost
- Cuando vas a poner la password no verás que se muestre ningún caracter o asteríscos, la primera vez que alguien empieza con esto en un sistema linux puede parecer raro, pensando que está algo mal.
- Se puede indicar con que usuario queremos acceder al servidor, si no lo indicas te solicitara primero el nombre de usuario con el que vas a acceder al host
# ssh -l dedalus 192.168.1.10 OR # ssh dedalus@192.168.1.10
- Si queremos verificar el fingerprint del servidor en local usamos
# ssh-keygen -l -f /etc/ssh/ssh_host_ecdsa_key.pub
- Un tema interesante es poder ejecutar un comando remotos o varios en el server sin tener que acceder a la consola del mismo (haciendo el login primero)
# ssh -l dedalus 192.168.1.10 uname -r OR # ssh dedalus@192.168.1.10 uname -r
Con el comando anteriror hemos invocado en remoto el uname -r para saber la versión del kernel que tiene instalado el host.
Enviando múltiples comandos:
# ssh -l dedalus 192.168.1.10 “uname -r; hostname”
Tenemos que separar los comandos con punto y coma (;) y ponerlos entre comillas
- Y por último algo que puede ser muy útil, poder enviar/transferir un fichero de nuestro equipo al servidor remoto:
# scp test.txt dedalus@192.168.1.10:/home/pruebas/
Usando el comando scp estamos transfiriendo este fichero a nuestra máquina remota con una conexión encriptada añadiendo seguridad a esta operación como en ssh. Si usamos la opción -R se puede transferir un directorio completo desde nuestro equipo.