Reenviar el acceso a mysql a través del túnel ssh con la ayuda de expect

Reenviar el acceso a mysql a través del túnel ssh con la ayuda de expect

Tengo este comando que crea un túnel ssh funcional para acceder al servidor MySQL:

ssh -f test@remotehost -L 127.0.0.1:3306:mysqlhost:3306 -N

Aquí, solo se puede acceder al host remoto a través del host de salto que configuré con la ayuda de ProxyCommand en .ssh/config:

Host somehost
  Hostname jumphost-name
  ForwardAgent yes
  ControlPath ~/.ssh/cm-%r@%h:%p
  ControlMaster auto
  ControlPersist 10m

Host *.example.com 
  User test
  StrictHostKeyChecking no
  ProxyCommand ssh -X -4 test@somehost nc %h %p

¿Cómo puedo hacer lo mismo usando la herramienta expect?

Respuesta1

expectes un marco para procesar entradas/salidas de algún tipo de conexión TCP. Puede soportar ssh, claro... pero ciertamente no entiende el protocolo mysql. La mayor parte de la comunicación en el protocolo mysql son datos binarios... y la última vez que lo examiné expect, fue incapaz de analizar datos binarios correctamente. Sería mejor que escribieras un contenedor para el mysqlcliente, lo que requeriría que comenzaras mysqldespués de conectarte a través de ssh.

información relacionada