1.4 Acceder a sistemas remotos mediante ssh

SSH es un protocolo que nos permite la administración remota de nuestros servidores linux, como un reemplazo a telnet, ssh utiliza un cifrado para garantizar la comunicación entre el cliente y servidor, en este documento veremos cómo realizar esta tarea y las principales funciones del servidor ssh

Requerimientos lógicos

Instalación

Es difícil encontrar hoy en dia servidores que no vengan con este servicio habilitado por default, sin embargo los siguientes comandos garantizan la instalación y que el servicios esté iniciado y habilitado desde inicio.

Archivos de configuración

El servidor SSH tiene su archivo de configuración sshd_config en el path /etc/ssh/ y es en este archivo donde se pueden configurar parámetros como:  puerto del servicio, usuarios o grupos que se pueden conectar, algunos parámetros de seguridad, uso de banners, entre otros, podríamos tener un manual con un gran volumen de capitulos de las opciones configurables en este archivo, sin embargo este no es el fin de este documento, así que por el momento solo haremos mención de esos archivos.

Para el cliente ssh el archivo de configuración radica en /etc/ssh/ssh_config

Conexión SSH

Para poder conectarse a un sistema mediante el protocolo ssh en necesario saber el usuario y el host al que nos vamos a conectar, la sintaxis del comando ssh para una conexión simple es la siguiente:

Consultar el manual de ssh para visualizar todas las opciones disponibles en el comando

Regularmente el usuario root no debería estar habilitado para una conexión ssh por temas de seguridad, así que para temas de ejemplo usaremos al usuario franklin en el host server1 y haremos la conexión desde el host cliente-ssh de la siguiente forma:

The authenticity of host ‘server1 (10.9.33.24)’ can’t be established.

ECDSA key fingerprint is SHA256:geHcIZDM9BECX5Tjc3daV7ikAex3Qa/jqO3hCqGWKUc.

ECDSA key fingerprint is MD5:3f:d7:23:b2:f5:80:fc:6e:92:61:79:da:be:a2:d0:18.

Are you sure you want to continue connecting (yes/no)? yes

Warning: Permanently added ‘10.9.33.24’ (ECDSA) to the list of known hosts.

franklin@server1’s password:

Last login: Tue Aug 14 09:00:52 2018

[franklin@server1 ~]$hostname

server1

Explicando la salida anterior:

Al ejecutar el comando con ssh si es la primera vez que nos conectamos a este host nos pedira confirmacion (yes) para poder agregar el key fingerprint a nuestro archivo de de host conocidos ubicado en ~/.ssh/known_hosts, esto es parte del cifrado que se llevará al momento de la conexión.

Inmediatamente nos pedirá por razones de seguridad la contraseña del usuario con que intentamos conectarnos, en este caso franklin

Una vez llevado a cabo la autenticación con éxito nos devolverá el promt del servidor remoto, es decir, ya estamos dentro de ese server y podemos trabajar en la terminal como si lo hiciéramos de forma local, nótese la salida del comando hostname indica que estamos en el server1.

Ejemplos de ssh

Si el usuario cliente es el mismo que el remoto no es necesario indicarlo al momento de la conexión

El servidor ssh está configurado por default para escuchar por el puerto 22, pero si por alguna razón es cambiado , podemos indicar el puerto de la siguiente forma

Otra forma de conexión con el parámetro -l (login_name)

Podemos tener un log de la conexión con la opción -E

frankli@10.9.33.24’s password:

frankli@10.9.33.24’s password:

frankli@10.9.33.24’s password:

Warning: Permanently added ‘10.9.33.24’ (ECDSA) to the list of known hosts.

Permission denied, please try again.

Permission denied, please try again.

Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).

De igual forma podemos ejecutar un comando en el servidor remoto sin necesidad de entrar en tu totalidad al mismo y la salida no la arroja en nuestra stdout.

franklin@server1’s password:

server1

mar nov  6 18:18:22 PST 2018

franklin@server1’s password:

● sshd.service – OpenSSH server daemon

Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)

Active: active (running) since mié 2018-08-01 12:18:20 PDT; 3 months 5 days ago

Docs: man:sshd(8)

man:sshd_config(5)

Main PID: 1079 (sshd)

Tasks: 1

Memory: 7.7M

CGroup: /system.slice/sshd.service

└─1079 /usr/sbin/sshd -D

Matando la conexión

Una vez dentro del servidor remoto, al igual que de forma local podemos cerrar la sesión con el comando exit o con la combinación de teclas Ctrl+d

@franklinux

 

Deja un comentario