Weiterleitung des Zugriffs auf MySQL über SSH-Tunnel mit Hilfe von expect

Weiterleitung des Zugriffs auf MySQL über SSH-Tunnel mit Hilfe von expect

Ich habe diesen Befehl, der einen funktionierenden SSH-Tunnel für den Zugriff auf den MySQL-Server erstellt:

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

Hier ist der Remotehost nur über den Jump-Host erreichbar, den ich mit Hilfe von ProxyCommand in .ssh/config konfiguriert habe:

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

Wie kann ich dasselbe mit dem Expect-Tool tun?

Antwort1

expectist ein Framework zur Verarbeitung von Eingabe/Ausgabe aus einer Art TCP-Verbindung. Es unterstützt zwar SSH, versteht aber definitiv nicht das MySQL-Protokoll. Der Großteil der Kommunikation im MySQL-Protokoll selbst besteht aus Binärdaten, und als ich es das letzte Mal untersucht habe expect, konnte es Binärdaten nicht richtig analysieren. Sie sollten besser einen Wrapper für den Client schreiben , den Sie nach der Verbindung über SSH mysqlstarten müssen .mysql

verwandte Informationen