
Introducción
Necesitamos configurar y arreglar los ordenadores de los clientes, pero existe un problema están tan lejos de los administradores que se hace casi imposible que puedan acceder. Para ello instalaremos un servidor ssh en el servidor y clientes para poder acceder a ellos remotamente y a si poder controlarlos.
El protocolo que utilizaremos sera por SSH y VNC para que los clientes puedan acceder remotamente a los escritorios de otros usuarios, pero estos estarán protegidos por una contraseña que administraremos mas adelante.
En nuestro caso los clientes serán; Un Debian 10.2 (Con entorno gráfico) y un Windows 7 (Home Premium).
Caso Práctico
Los usuarios del centro tienen varios problemas con los ordenadores en el sistema operativo (software), y nuestro técnicos trabajan a distancia. Tenemos que buscar una solución al problema y ademas de manera segura, es decir utilizando ssh con claves publicas.
Esto solucionara los problemas que tienen los clientes ya que los administradores podrán entrar en sus ordenadores y como utilizamos claves publicas tenemos la seguridad de que nadie mas va a poder entrar a esos ordenadores, mas adelante explicamos porque es tan seguro.
Trabajaré sobre un entorno VirtualBox preparado y configurado para esta tarea , pero se puede hacer con máquinas reales conectadas y cableadas entre sí.
Explicación básica de las claves SSH
En el proceso se crean dos claves una publica y otra privada. Una clave para encriptar y otra para desencriptar, y viceversa. La idea es que el administrador cree una clave publica que se le enviara al usuario cliente para poder acceder sin necesidad de contraseñas, esto es la forma mas segura de entrar ya que necesitas tener la clave publica para tener permiso de entrar en el usuario cliente.
Las claves pueden ser (RSA y DSA) RSA pueden encriptar todo el documento y la firma de archivo, mientras que una DSA solo se usa para firmar documentos. En ese caso nosotros utilizaremos la RSA que es la estándar para estos casos.
Instalación del Servicio SSH
Para que todo funciona correctamente tendremos que instalar el servidor ssh tanto en el cliente como en el servidor.
Empezaremos actualizando los repositorios y los paquetes.
apt-get update

Luego instalamos los paquetes actualizados.
apt-get upgrade

La paquetería necesaria para empezar a funcionar se llama “SSH”, este será el instalador de nuestro servidor SSH.

Los archivos de configuración del SSH, los únicos que tendremos que configurar esta practica sera el sshd_config que es el archivo de configuracion del servidor, el otro es ssh_config que esta practica no necesitaremos configurar.
Verificaremos que el servicio SSH funciona correctamente.
systemctl status ssh

Creación de la clave publica SSH
Pasaremos a crear la clave publica y privada en el servidor, la única que tendremos que pasar sera la publica. Con el siguiente comando se crearan:
ssh-keygen

La claves publica y privada se guardara por defecto en el directorio .ssh. Ademas nos pedirá una contraseña cada vez que utilicemos la clave, en mi caso no pondré ninguna.

Tenemos que fijarnos en los permisos de los archivos y que el archivo id_rsa debe tener permisos restrictivos (600). El directorio /home/domingo/.ssh/ debe tener permisos (700).
Pasar la clave publica al cliente Debian
El siguiente paso sera pasar el archivo con la clave publica al usuario cliente, pero antes deberemos preparar el usuario cliente para instalar la clave publica. Primero instalaremos ssh en el cliente para poder acceder.

Saldremos del usuario root y entramos como usuario normal, luego crearemos la carpeta .ssh en el directorio del usuario si no existiera. Después creamos el fichero donde se almacenaran las claves publicas que le llamaremos «authorized_keys«.

Ahora volveremos al servidor para inyectar la clave publica en el archivo de «authorized_keys«. El siguiente comando lo que haces es coger el fichero con la clave publica, conectarse por SSH al cliente con el usuario «domin» y la dirección 192.168.10.103 e inyectar en el fichero authorized_keys la contraseña publica del servidor.
cat .ssh/id_dsa.pub | ssh domin@192.168.10.103 "cat >> .ssh/authorized_keys"

Ponemos «yes» y la contraseña del usuario «domin«.

Como podemos ver tenemos la contraseña del usuario esta instalada en el cliente, el ultimo paso sera configurar el cliente para que solo se pueda entrar por el puerto 222, que funcione con claves publicas y funcione sin contraseña, para ello tendremos que configurar los siguientes parámetros en el fichero /ssh/sshd_config:
Cambiando el puerto cada vez que queramos establecer conexión deberemos usar ese puerto.

Cambiando esta opción a «Yes» activamos la autentificacion solo con claves publicas.

Cambiando la opción a «No» cada vez que iniciemos sesión por ssh no necesitamos poner la contraseña del usuario automáticamente se identifica con la clave publica.

Guardamos el documento con los cambios realizamos y reiniciamos el servicio SSH.

Pasamos a comprobar que todo funciona correctamente.
Comprobación de la conexión con clave publica
Con el siguiente comando estableceremos la conexión por ssh luego seleccionamos el usuario al que nos queremos conectar y la dirección ip de la maquina en cuestión.

Como podemos ver nos aparece un error eso significa que tenemos que seleccionar el puerto por el que queremos entrar para ello utilizaremos la opción -p después del comando y el puerto por el que queremos entrar en este caso el 2222 establecido antes.

Como podemos ver estamos dentro de la maquina cliente, conectados desde ssh.

Ahora mismo los únicos que nos podemos conectar con la maquina cliente somos el servidor, porque tenemos nuestra clave publica instalada en la maquina Debian. Ahora vamos a intentar establecer una conexión desde una maquina que no tiene la clave publica instalada como por ejemplo un cliente Ubuntu.

Como podemos ver no sale un error de que no tenemos permiso, ya que solo nos podemos conectar utilizando claves publicas y como la del Ubuntu no esta agregada al cliente Debian no podemos entrar.
Conexión desde escritorio remoto
Es necesario que nuestros clientes se conecten remotamente a otro clientes para poder trabajar, para esto tendremos que configurar los clientes para que puedan permitir el acceso a las conexiones ajenas y también establecer una contraseña que solo sabemos nosotros para que no ocurran problemas a futuros por conexiones no permitidas.
Utilizaremos 3 clientes en este caso un Debian donde nos conectaremos a un Ubuntu y un Windows donde nos conectaremos también a la maquina Ubuntu.
Cliente Debian

Cliente Ubuntu

Cliente Windows

Primero configuraremos el cliente Ubuntu para permitir las conexiones entrantes. Entramos en:
Configuración, Compartir. Activamos la opción (Compartir Escritorio)

Activamos la opción de solicitar una contraseña y establecemos la contraseña 12345, para que cada vez que se quieran conectar tengan que poner esa contraseña por seguridad. Ahora estaría activado para poder entrar desde los otros cliente.

Vamos al cliente Debian para entrar como cliente remoto en el Ubuntu. Utilizaremos Remmina para acceder remotamente para ello lo instalaremos con un simple comando.

Iniciamos Remmina y escribimos la dirección IP de la maquina ubuntu. También tendremos que poner el protocolo «VNC» ya que se especifica en la practica y le damos a enter.

Nos pedirá que escribamos la contraseña que establecimos antes como administrador.

La ponemos y le damos a aceptar.

Como vemos entramos desde escritorio remoto al cliente Ubuntu. Ahora vamos hacer la misma conexión pero desde una maquina Windows.
Entraremos en la pagina de VNC Viewer https://www.realvnc.com/es/connect/download/viewer/ ya que nos queremos conectar como cliente, decagramos e instalamos el programa.

Guardamos el archivo e instalamos el VNC Viewer.

Dentro de la aplicación le damos a nueva conexión.

Ponemos la dirección de la maquina cliente Ubuntu y un nombre para identificarlo.

Le damos a aceptar y se nos agregara la conexión, le damos click derecho «Conectar«.

Nos damos cuenta de que ocurre un error. Nos da en error en la versión de
RealVNC, que no puede ser ya que lo acabamos de descargar o un error de cifrado muy
estricto.

Investigando podemos reducir el cifrado que tiene Ubuntu utilizando una aplicación,
que es la siguiente.
Apt-get install dconf-editor
Después de instalar en el cliente ubuntu entramos dentro de la aplicación dconf.

Cuando entremos en la aplicación dconf entraremos en la siguiente ruta:
org/gnome/desktop/remote-access

Ahora volveremos a ejecutar el RealVNC de escritorio desde el Windows para
comprobar que funciona. Lo que acabamos de hacer es quitar el requerimiento del cifrado en la conexión es decir ahora mismo es menos segura, pero podemos conectarnos.

Como podemos ver nos avisa de que la comunicación no esta cifrada. Le damos a continuar.

Ponemos la contraseña que establecimos anteriormente y le damos a «Aceptar«.

Como podemos ver estamos conectados desde el cliente windows al cliente Ubuntu por escritorio remoto sin problemas.
Si tenéis algún problema con errores de ficheros, verificar las faltas de ortografía y erratas que suele ser el mayor problema a la hora de configurar ficheros en debian.
Muchas gracias por ver este post, si tienes alguna duda deja tu comentario abajo. 🤨