SSH

Contenido

¿Qué es SSH?

SSH o Secure Shell, es un protocolo de administración remota que le permite a los usuarios controlar y modificar sus servidores a través de Internet empleando un mecanismo de autentificación.  Con SSH podemos autenticar un usuario remoto, transferir entradas desde el cliente al host y retransmitir la salida de vuelta al cliente. El servicio se creó como un reemplazo seguro para Telnet (ya que los datos no estaban cifrados) y utiliza técnicas criptográficas para garantizar que todas las comunicaciones hacia y desde el servidor remoto sucedan de manera encriptada.

¿Cómo instalar SSH?

SSH suele venir instalado de manera predeterminada en distribuciones como Kali Linux o Parrot. En caso de necesitar instalar SSH podemos utilizar el siguiente comando:
				
					sudo apt install ssh
				
			

¿Cómo funciona SSH?

Si usas Linux o Mac, entonces usar el protocolo SSH es muy fácil. Si utilizas Windows, deberás utilizar un cliente SSH para abrir las conexiones. Para iniciar un servicio SSH en Linux, en primer lugar debemos de activar el servicio ssh en el equipo al cual nos vamos a conectar:
				
					sudo systemctl start ssh
				
			

Luego ejecutamos el comando ssh, donde especificamos el Usuario y el Host separados por @.

				
					ssh [Usuario]@[Host]
				
			
  • SSH : Le indica a tu sistema que desea abrir una Conexión de Shell Segura y cifrada.
  • Usuario : Representa la cuenta a la que deseas acceder. Podemos acceder como root si queremos tener máximos privilegios en el equipo cliente.
  • Host : Hace referencia al equipo al que quieres acceder. Esto puede ser una dirección IP (10.10.10.10) o un nombre de dominio (www.ejemplo.com).

Una vez establecida la conexión nos pedirá la contraseña de la cuenta solicitada. La introducimos, pulsamos Enter y finalmente tendremos control del equipo.

También es posible conectarse a través de claves de acceso sin la necesidad de tener que introducir la contraseña cada vez que queramos acceder a dicha cuenta. Esto lo podremos configurar en el directorio .ssh que se encuentra dentro del directorio principal de cada usuario ~/.ssh

Finalmente, si deseamos cerrar el servicio ssh por completo para que no quede expuesto utilizamos el siguiente comando:

				
					sudo systemctl stop ssh
				
			

Puerto 22 SSH

La comunicación inalámbrica o por cable entre dos máquinas se realiza a través de puertos. Hay un total de 65,536 puertos de comunicación y la comunicación puede tener lugar a través de cualquiera de estos puertos. SSH se comunica por defecto a través del puerto 22. Cuando ejecutamos el comando anterior, la conexión entre el cliente local y el servidor se establece a través del puerto 22 y toda la comunicación se ejecuta a través de este puerto.

Especificar puerto de conexión con SSH

En ocasiones, se puede modificar el puerto por el cual se conecta SSH. En caso de no especificar ningún puerto, SSH se conectará por defecto por el puerto 22. En caso de querer especificar otro puerto lo podemos hacer con la opción -p seguido del puerto en cuestión.

 
				
					ssh [Usuario]@[Dirección] -p [Puerto]

				
			

Directorio  .ssh:

La información de configuración de SSH específica del usuario se almacena en el directorio de inicio de cada usuario dentro de la ruta ~ /. ssh / o /home/user/.ssh. Aquí podremos guardar las claves públicas para validar un equipo y de este modo ahorrarse el introducir la contraseña cada vez que queramos ingresar .

  • Claves_autorizadas: El archivo que contiene una lista de claves públicas “autorizadas”.

Si un usuario que se conecta puede demostrar que conoce la clave privada que corresponde a cualquiera de estos, entonces está autenticado.

 

Directorio  /etc/ssh:

Este directorio cuenta con toda la configuración de SSH. 

  • sshd_config: Este es el archivo de configuración para todo el sistema del servidor sshd.
 

 sshd_config:

Para activar cualquier configuración simplemente debemos desmarcar el comentario de dicha configuración, para ello simplemente borramos la almohadilla (#) del inicio y pasará a estar activa.

Configuraciones más básicas:

  • ListenAddres 0.0.0.0 : Para que puede escuchar a cualquier host.
  • PermitRootLogin prohibit-password : Nos permitirá ingresar como super usuario o root.
  • PasswordAuthentication yes : Activa la autenticación de contraseña SSH.
Cada vez que modifiquemos este archivo, para que la configuración funcione correctamente debemos de reiniciar el servicio sshd, para ello se utiliza el siguiente comando:
				
					/etc/init.d/ssh restart

				
			

Para comprobar que todo funciona correctamente, podemos ver el estado del servicio sshd con:

				
					/etc/init.d/ssh status

				
			

Cómo crear una Clave Pública y una Privada para conexiones SSH:

Como ya hemos mencionado anteriormente, es posible conectarse sin necesidad de autentificarnos cada vez que queramos acceder por ssh a un sistema, para ello debemos de tener configuradas nuestras claves de conexión que son dos, una clave Pública y una clave Privada.
Para crear estas claves es aconsejable desplazarnos hasta el directorio ~/.ssh. Una vez dentro del directorio, para crear las claves simplemente debemos ejecutar el comando ssh-keygen.
				
					ssh-keygen
				
			

Clave Privada SSH –> id_rsa

Esta clave es la que permanecerá en el equipo principal que es el equipo con el cual nos conectaremos al equipo remoto por ssh. Está clave no se debe de compartir ni de copiar y debe de 
estar almacenada dentro del directorio ~/.ssh.

Clave Pública –> id_rsa.pub

La clave Pública es la que debemos de copiar y guardar dentro del equipo remoto al cual nos queremos conectar. Para ello debemos de crear un archivo dentro del directorio ~/.ssh con el nombre de «authorized_keys» y pegar la clave publica que hemos generado previamente en el equipo principal.
De esta forma cuando volvamos a intentar conectarnos desde nuestro equipo principal ya no necesitaremos introducir la contraseña.

Conectarse a un servicio SSH con la clave Privada:

Hemos estado viendo que con la clave pública somos capaces de conectarnos a cualquier sistema. No obstante, también podemos conectarnos utilizando la clave privada, por eso es tan importante mantenerla segura, ya que cualquiera que disponga de esta clave tendría acceso al sistema. En este caso, si disponemos de una clave id_rsa, podemos configurarlo utilizar el comando «ssh-copy-id -i» seguido de la clave id_rsa para generar un archivo de identidad y poder conectarnos al sistema con el nombre el Usuario y el Host:
				
					ssh-copy-id -i id_rsa usuario@host
				
			

Conectarse a un servicio SSH con SSHPASS:

La utilidad sshpass está diseñada para ejecutar SSH utilizando el modo de autenticación de contraseña interactiva con el teclado, pero de una manera no interactiva. De esta forma podemos especificar en la misma línea de comandos la contraseña antes de ejecutar el comando SSH. La contraseña debe establecerse entre comillas dobles:
				
					sshpass -p ["Contraseña"] ssh [Usuario]@[Dirección] -p [Puerto] 

				
			
[ultimatemember form_id="17973"]

Formulario de Registro

[user_registration_form id=»20865″]