Curl SFTP en UBUNTU
En ocasiones se puede requerir el uso del protocolo SFTP sobre CURL, por defecto nos encontramos en Ubuntu Server y Desktop que este protocolo está deshabilitado, las versiones de curl y libcurl son muy antiguas y no incluyen esta opción con lo que no podremos conectarnos a ningún servidor sftp. Como muestra "un botón":
Vale, que no cunda el pánico, no tenemos sftp habilitado, pero en la informática prácticamente todo tiene solución, a veces la solución conlleva partir de cero, aunque en este caso concreto no vamos a llegar a ese extremo, sólamente tenemos que usar la versión correcta de los programas que se necesitan.
Prerequisitos: libssl debe estar instalado, si no lo está, la compilación dará error. (ejecutamos apt install libssl y solucionado)
- Punto 1. Instalación de libssh2.
Descarga del fichero desde la web oficial http://www.libssh2.org/. (elegiremos la última versión disponible)
Una vez descargado el fichero y descomprimido, se requieren unos sencillos pasos que serían:
(dentro del directorio donde se han descomprimido)
-
./configure make make install
- Punto 2. Instalación de curl.
Descarga del fichero desde la web oficial https://curl.haxx.se/download.html. (también elegiremos la última versión disponible)
Estos pasos son iguales que el programa anterior, se descomprime el fichero y ya dentro de la carpeta descomprimida se ejecutan las órdenes para la instalación:
-
./configure --with-libssh2=/usr/local make make install
Con estos sencillos pasos ya tendremos habilitado el soporte para fsftp. Si ejecutamos 'curl -V' deberíamos obtener:
Si llegados a este punto nos encontramos que no está habilitado el protocolo sftp ejecutamos el siguiente comando:
para 64bit:
apt install libssh2-1-dev
para 32bit:
dpkg --add-architecture i 386
apt update
apt upgrade
apt install libssh2-1-dev:i386
y quedaría solucionado.
Cabe comentar que algunos comandos requerirán permisos de sudo, como bien podrían ser las órdenes 'make install' y 'apt install', por ejemplo.
En futuras publicaciones veremos como usar esta conexión SFTP en un script que permita subir a un servidor sftp una copia de seguridad de directorios y/o bases de datos, y como automatizar la ejecución tanto de las copias, subidas y envío de log por email.