Del ejecutable Linux a una captura remota

Esta guía te lleva desde la descarga de rdp-cli hasta una captura del escritorio Windows por RDP. Describe la versión 0.1.0 con pruebas existentes: Linux x86_64, compilación 2026092203, superó la aceptación de software en diez sistemas; ARM64, compilación 2026092301, en doce entornos, incluidos Raspberry Pi 4 y DGX Spark. Este artículo no constituye una prueba nueva ni afirma que se hayan probado todas las distribuciones Linux.

Elegir la arquitectura y verificar el archivo

En el equipo Linux que ejecutará rdp-cli:

uname -m

En la página de descarga, elige Linux x86_64 para x86_64 o Linux ARM64 para aarch64. Un procesador ARM con sistema operativo de 32 bits queda fuera de esta versión ARM64. Un Mac con macOS necesita el paquete macOS. Descarga el ejecutable; los materiales de código fuente y licencias se distribuyen por separado y no son necesarios para ejecutarlo.

Antes de ejecutar el archivo, compara su SHA-256 con los detalles de la arquitectura correspondiente en la página de descarga. Para x86_64:

sha256sum ./rdp-cli-linux-x86_64

Solo después de confirmar que el resumen coincide, habilita la ejecución y consulta la versión:

chmod u+x ./rdp-cli-linux-x86_64
./rdp-cli-linux-x86_64 --version

Para ARM64:

sha256sum ./rdp-cli-linux-arm64

Solo después de confirmar que el resumen coincide, habilita la ejecución y consulta la versión:

chmod u+x ./rdp-cli-linux-arm64
./rdp-cli-linux-arm64 --version

--version debe devolver información de versión en JSON. El producto es un único ELF estático y puede ejecutarse como usuario normal, sin instalación como root. El visor nativo utiliza los servicios de pantalla del escritorio activo. Las pruebas de esta versión no certifican todos los escritorios, núcleos ni dispositivos de audio.

Conectar desde Bash

El servidor Windows debe tener RDP habilitado, permitir el acceso remoto de tu cuenta y ser accesible desde este equipo Linux por la red o VPN prevista. Instalar el cliente no activa el servicio de Windows.

En Bash, desde el directorio del ejecutable, ejecuta lo siguiente. En ARM64 cambia la primera línea a rdp_cli=./rdp-cli-linux-arm64. Sustituye 192.0.2.20 y USER por el destino y la cuenta autorizados; la contraseña no se muestra al escribirla.

rdp_cli=./rdp-cli-linux-x86_64
IFS= read -r -s -p 'Password: ' rdp_password
printf '\n'
printf '%s' "$rdp_password" | "$rdp_cli" connect --host 192.0.2.20 --user USER --password-stdin
unset rdp_password

Continúa en esa misma shell para conservar rdp_cli. La tubería envía la contraseña y cierra la entrada estándar. Para una cuenta de dominio añade --domain DOMAIN; no combines varias fuentes de contraseña. RDP usa actualmente --cert-policy ignore por defecto: consulta connect --help y configura la verificación de certificados adecuada para tu entorno. Una política de certificados no soluciona un servidor inaccesible ni credenciales incorrectas.

Lee el JSON: si falla, revisa error.code y error.message; si funciona, guarda data.session como SESSION.

Revisar el estado y el primer PNG

"$rdp_cli" status --session SESSION
"$rdp_cli" screenshot --session SESSION --out first-screen.png

Comprueba los estados de conexión y control. Abre first-screen.png con una herramienta de imágenes e identifica la pantalla antes de actuar. Una sesión conectada puede mostrar el inicio de sesión, la bienvenida o una aplicación ocupada. Guarda el data.observation de la captura para una entrada posterior basada en esa imagen; no es un identificador permanente de sesión.

La ventana local es opcional para capturas y entradas. Para que una persona observe la misma sesión en un escritorio Linux:

"$rdp_cli" watch --session SESSION --viewer window

La ventana se abre en modo de solo lectura y la toma de control humana es explícita. Cerrar un visor de solo lectura mantiene la conexión; perder el visor que controla la sesión deja la entrada en pausa. Tras reconectar o transferir el control, inspecciona una captura nueva y respeta el estado de control.

Resolver el fallo concreto

  • Formato de ejecutable incorrecto: compara uname -m con la arquitectura descargada; los archivos x86_64 y ARM64 no son intercambiables.
  • Permiso denegado: revisa el permiso de ejecución y que el sistema de archivos permita ejecutar programas. Elige un directorio de usuario apropiado en lugar de elevar privilegios.
  • Error de conexión o autenticación: comprueba ruta de red, puerto, servicio RDP, permisos de cuenta y error devuelto. No repitas contraseñas ni habilites TLS antiguo para fallos ajenos a TLS.
  • SDL_INIT_FAILED sin escritorio: el visor nativo necesita una sesión gráfica; las capturas CLI sin escritorio siguen disponibles. Un error del visor no demuestra por sí solo que RDP haya fallado.
  • CREDENTIAL_STORE_FAILED: las credenciales guardadas usan Secret Service del sistema. Si no está disponible, utiliza una fuente admitida como --password-stdin; no des por guardada una credencial.

Continúa con el inicio rápido, la referencia de comandos o la carga y descarga de archivos por RDP. El intercambio de archivos requiere además redirección de unidades en el servidor y permisos sobre los archivos.