- Plink es clave para automatizar y ejecutar comandos SSH en Windows, permitiendo conexiones seguras y eficientes con servidores remotos desde la línea de comandos.
- Es posible integrar Plink en scripts y pipelines de automatización, facilitando la gestión remota y conexión por túneles SSH o reenvío de puertos de forma segura.
- La gestión de autenticación y hostkeys es esencial para el uso de Plink, existiendo trucos y parámetros avanzados para automatizar la aceptación de huellas digitales y mejorar la seguridad.
El mundo del acceso remoto seguro y automatización de tareas en servidores ha cobrado cada vez más importancia para administradores de sistemas, desarrolladores y entusiastas de la tecnología. Uno de los grandes aliados en este ámbito, especialmente en entornos Windows, es Plink. Esta pequeña pero potente utilidad facilita la conexión y ejecución de comandos en máquinas remotas mediante SSH, además de ofrecer enormes posibilidades para quienes buscan integrar procesos y scripts automatizados en sus flujos de trabajo.
Si alguna vez te has preguntado cómo conectarte a servidores Linux desde Windows sin recurrir a interfaces gráficas, o cómo automatizar tareas que normalmente requerirían intervención manual, Plink es tu herramienta. En este artículo, te explicamos en detalle no solo qué es Plink, sino cómo utilizarlo desde cero, sus aplicaciones habituales y avanzadas, y algunos trucos para exprimirlo al máximo en Windows.
¿Qué es Plink y para qué sirve?
Plink, abreviatura de PuTTY Link, es un programa de línea de comandos que acompaña a la suite PuTTY. Diseñado principalmente para sistemas Windows, Plink te permite establecer conexiones seguras hacia servidores remotos empleando protocolos como SSH, Telnet o rlogin. Se utiliza sobre todo con SSH para acceder y controlar servidores Linux o Unix de manera segura desde la consola de comandos de Windows.
Uno de los grandes atractivos de Plink es su enfoque en la automatización. A diferencia de PuTTY (la versión gráfica), Plink está orientado a ejecutarse en scripts o en procesos que no necesiten interacción directa del usuario. Esto lo convierte en una pieza fundamental para integrar operaciones remotas en tareas programadas, despliegues automáticos, pipelines de CI/CD e incluso para la gestión masiva de servidores.
Plink es gratuito y de código abierto, lo que favorece su adopción tanto en proyectos personales como en entornos profesionales. Su compatibilidad con scripts batch en Windows lo diferencia de otros clientes SSH, y su capacidad de integración con las sesiones y configuraciones de PuTTY simplifica mucho el acceso a servidores ya configurados.
Ventajas de usar Plink en Windows
La principal razón para usar Plink es la automatización de tareas administrativas y operativas entre sistemas Windows y servidores remotos. Algunas de las ventajas más relevantes incluyen:
- Ejecutable portable: Puedes llevar Plink en un USB o compartirlo fácilmente, ya que solo necesitas el archivo plink.exe.
- Integración con scripts: Es ideal para lanzar comandos desde scripts batch, PowerShell o incluso herramientas más avanzadas como Jenkins.
- Compatibilidad con configuraciones de PuTTY: Permite reutilizar perfiles, claves SSH y hosts predefinidos.
- Reenvío de puertos y túneles SSH: Facilita conexiones seguras y la transferencia de datos cifrada entre equipos remotos y locales.
- Gestión de autenticación avanzada: Soporta contraseñas, claves públicas, Pageant (el agente de autenticación de PuTTY), e integración con sistemas automatizados.
Primeros pasos: Instalación y configuración
Antes de lanzarnos al uso de Plink, es necesario descargarlo e instalarlo. Estos son los pasos recomendados:
- Descarga PuTTY o sus utilidades individuales desde su web oficial: https://www.putty.org/. Allí puedes encontrar plink.exe y otros programas relacionados (como pscp.exe para transferencias de archivos).
- Copia plink.exe a una ubicación accesible, como C:\Windows\System32 o cualquier carpeta incluida en el PATH de Windows.
- Opcionalmente, agrega la carpeta donde se encuentra plink.exe a las variables de entorno, para poder ejecutarlo desde cualquier terminal de comandos.
Si utilizas Ubuntu o alguna distribución Linux y quieres tener las mismas utilidades para scripts multiplataforma, busca el paquete putty-tools e instálalo mediante sudo apt-get install putty-tools
.
Cómo usar Plink: Sintaxis y comandos básicos
El uso más sencillo de Plink es conectar a un servidor remoto y ejecutar comandos como si estuvieras usando un terminal SSH tradicional. La sintaxis general suele ser:
plink -ssh usuario@host
Esto abrirá una sesión SSH interactiva. Si tu servidor requiere contraseña, te la pedirá por consola. Puedes especificar el puerto SSH si no es el estándar (22) con la opción -P, y pasar tu clave privada con -i:
plink -ssh -i C:\ruta\a\clave.ppk usuario@host -P 2222
Para ejecutar comandos no interactivos directamente (ideal para scripts o tareas automáticas), basta con añadir el comando tras la conexión:
plink -ssh usuario@host comando
Por ejemplo, para listar los archivos del directorio en el servidor remoto:
plink -ssh usuario@host ls -l
El parámetro -batch permite ejecutar en modo silencioso, suprimiendo prompts interactivos (muy útil en procesos automatizados):
plink -batch -ssh usuario@host "ls -l"
Autenticación y claves públicas: consejos de seguridad
Uno de los aspectos clave para la seguridad en conexiones SSH es la autenticación mediante claves públicas. Plink soporta autenticación por clave (archivos .ppk) y también por contraseña. Es muy recomendable utilizar claves protegidas con passphrase para añadir una capa adicional de seguridad.
Para mejorar la robustez de tus scripts y conexiones:
- Guarda las claves privadas en ubicaciones seguras y restringe su acceso solo a los usuarios necesarios.
- Utiliza Pageant si quieres gestionar claves protegidas por passphrase sin tener que introducir la contraseña manualmente en cada conexión.
- En ambientes automatizados, desactiva la interacción usando -batch para evitar bloqueos si el servidor solicita una clave no registrada.
Gestión de huellas digitales (hostkey) en Plink
Al conectar a un servidor por primera vez, Plink avisará de que la hostkey (huella digital del servidor) no está registrada en el cliente. Esto es un mecanismo de confianza para asegurarte de que te conectas realmente al servidor deseado. En PuTTY, esta hostkey se cachea en el registro de Windows:
HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\SshHostKeys
En línea de comandos, Plink pedirá confirmación para guardar la hostkey si no está almacenada. Puedes aceptar manualmente (respondiendo ‘y’) o automatizar la aceptación en scripts usando un ‘truco’:
echo y | plink usuario@host
Esto envía la respuesta ‘y’ automáticamente. Sin embargo, hay situaciones donde esto no funciona, especialmente cuando fuerzas la versión 2 del protocolo SSH o usas túneles avanzados. En estos casos, Plink puede abortar la conexión sin pedir confirmación, y tendrás que especificar la hostkey manualmente con la opción -hostkey:
plink.exe -ssh -2 -batch -L 8080:host_remoto:80 -P 22 -pw contraseña usuario@host -hostkey huella_fingerprint
La huella se obtiene en la primera conexión o desde el registro. Así aseguras conexiones válidas y automatizas la aceptación de hostkeys en scripts complejos o pipelines CI/CD.
Ejemplos prácticos de uso de Plink en Windows
Vamos a ver algunos casos de uso habituales y avanzados de Plink en Windows, que demuestran su versatilidad y potencia.
1. Ejecución remota de comandos
Por ejemplo, para lanzar un listado de archivos en remoto autenticando con contraseña:
plink.exe -pw tu_contraseña tu_usuario@host_remoto ls -l
2. Ejecución de scripts remotos
Puedes preparar un fichero de comandos (por ejemplo, BACKUP.sh) y ejecutarlo así:
plink.exe -pw tu_contraseña -m BACKUP.sh tu_usuario@host_remoto
Muy útil para hacer backups, despliegues, instalaciones o cualquier proceso repetitivo.
3. Automatización con scripts batch y Python
Muchos usuarios crean scripts batch o en Python que usan Plink y otras utilidades como pscp.exe (del propio PuTTY) para automatizar descarga y subida de archivos, ejecución de múltiples comandos remotos, integración con bases de datos, etc.
Por ejemplo, una librería en Python puede envolver Plink y pscp para lanzar tareas automáticas desde Windows o Linux, detectando el sistema operativo y usando los comandos adecuados.
4. Transferencia de archivos: plink y pscp
Para transferir archivos puedes apoyarte en pscp.exe, otra herramienta de PuTTY, pero en muchos flujos de trabajo ambos suelen ir de la mano:
pscp.exe -pw tu_contraseña archivo_local.txt tu_usuario@host_remoto:/ruta/remota/
O para descargar archivos desde remoto a tu máquina local:
pscp.exe -pw tu_contraseña tu_usuario@host_remoto:/ruta/remota/archivo.txt ./archivo_descargado.txt
Reenvío de puertos y túneles SSH con Plink
Una de las funciones más avanzadas y potentes de Plink es la creación de túneles SSH y reenvío de puertos (port forwarding). Esto permite redirigir tráfico de red de forma segura y cifrada entre máquinas y redes.
— Port forwarding local: Redirige un puerto de tu máquina local a un puerto de una máquina remota a través de SSH.
plink.exe -L puerto_local:host_remoto:puerto_remoto -P 22 -pw tu_contraseña tu_usuario@host_remoto
Puedes usar esto para, por ejemplo, exponer una base de datos, acceder a una web interna o incluso abrir una sesión RDP a través de un túnel seguro.
— Túneles dinámicos (SOCKS): Plink puede crear proxies SOCKS (muy útil en pentesting o cuando necesitas navegar a través de un equipo comprometido):
plink.exe -D 9050 -P 22 -pw tu_contraseña tu_usuario@host_remoto
Luego puedes configurar tus aplicaciones para usar 127.0.0.1:9050 como proxy SOCKS, y el tráfico viajará cifrado por SSH hasta el host remoto.
Integraciones avanzadas y automatización con Plink
En entornos profesionales, Plink puede integrarse en pipelines de automatización como Jenkins, permitiendo depuración, despliegue y monitorización remota de servidores mediante código. Ejemplo básico en un Jenkinsfile:
pipeline { agent any stages { stage('Deploy') { steps { bat 'Plink -ssh usuario@host_remoto "deploy.sh"' } } } }
Asimismo, puedes combinarlo con herramientas como Proxifier para crear reglas de red avanzadas y acceder a servicios o puertos internos a través de túneles SSH iniciados con Plink. Esta técnica es muy habitual en pentesting, administración avanzada y configuración de laboratorios de pruebas seguras desde entornos Windows.
Redactor apasionado del mundo de los bytes y la tecnología en general. Me encanta compartir mis conocimientos a través de la escritura, y eso es lo que haré en este blog, mostrarte todo lo más interesante sobre gadgets, software, hardware, tendencias tecnológicas, y más. Mi objetivo es ayudarte a navegar por el mundo digital de forma sencilla y entretenida.