Un cliente quiere enviarnos ficheros usando el protocolo SFTP. Nos pide que la autenticación se haga por medio de intercambio de claves. Nuestro servidor corre en un Ubuntu 18.04
Problema
En realidad no lo es. Lo hubiera sido en caso de que el cliente hubiera preferido una autenticación de tipo usuario/contraseña. ¿Cómo le hacemos llegar las credenciales de manera segura al cliente?
Solución
Al utilizar un modelo de clave pública/privada, basta que el cliente nos haga llegar su clave pública, por ejemplo por email. Estos son los pasos a seguir:
El administrador del servidor crea un clave pública/privada para su servidor. La clave pública es automáticamente enviada al cliente cuando éste se conecta.
El cliente crea una clave pública/privada. Si su sistema operativo es Linux, lo podría hacer con este comando:
Shell
1
$ssh-keygen
El cliente envía la clave pública (id_rsa.pub) al administrador del servidor por email. No es necesario que esté cifrada.
El administrador del servidor añade la clave pública a la lista de claves de confianza, añadiendo el contenido al final del fichero .ssh/authorized_keys
El administrador del servidor modifica la cuenta de usuario en el servidor para que pueda usar uno de estos modelos de autenticación: contraseña y clave pública, o solo clave pública.
La próxima vez que se conecte el cliente podrá hacerlo usando su clave privada.
Igual no sabes que es Open Graph, pero seguro que lo has visto en acción cuando, al compartir un enlace de una web por un chat, por arte de magia aparece una imagen representativa de la página compartida. En cualquier caso, si no has oído hablar de OG, lo más seguro es que no te…
phpize: command not found Si alguna vez te topas con este error intentando instalar un paquete PEAR en un sistema linux, muy probablemente sea por que no tienes installado el paquete php-devel.
Escenario En el trabajo usamos Apache Guacamole para conectarnos a nuestros escritorios de la oficina desde casa. Apache Guacamole proporciona una puerta de entrada HTML5 para conectar con servicios de acceso remoto, como pueden ser VNC o RDP. Consta de dos : el servidor y el cliente que no tienen por qué correr en la…
Escenario Hay que migrar una servicio API a una nueva plataforma. Esto implica rehacer el código desde cero y al mismo tiempo respetar todos los endpoints y aceptar las peticiones de los clientes del API tal y como se estaban mandando hasta ahora. Problema Las peticiones del cliente vienen mal formadas: se estaban mandado usando…
Escenario Queremos desplegar en la nube una aplicación desarrollada con Spring Boot cuyo código está bajo control de versiones. Para este artículo usaremos ubuntu 16.04 y java 8, pero el procedimiento debería ser el mismo con versiones más actuales. Problema Ninguno. Realmente es sencillo desplegar una aplicación de este tipo si se dispone de las…
A menudo me he encontrado con que, para corregir un bug de un programa o simplemente añadir una funcionalidad nueva, basta con aplicar un parche (patch) al código fuente. En Linux / UNIX disponemos de un comando llamado patch que aplica un fichero diff o patch a un fichero de código fuente.