Ich versuche, dies zu befolgenFührungum einen SSH-Tunnel zu meiner RDS-Datenbank einzurichten.
Insbesondere dieser Befehl:
ssh -N -L localPort:rdsHost:remotePort user@remoteHost -i ~/path/to/key
Ich verwende jedoch aws-elastic-beanstalk mit der eb-cli.
Die EB-CLI ermöglicht eb -ssh
die Verbindung zu einer Instanz über SSH.
eb ssh -e '-N -L localPort:rdsHost:remotePort'
aus der EB-Dokumentation:
-e BENUTZERDEFINIERT, --custom BENUTZERDEFINIERT Geben Sie einen SSH-Befehl an, der anstelle von „ssh -i keyfile“ verwendet werden soll. Geben Sie den Remote-Benutzer und Hostnamen nicht an.
Dies führt jedoch nur zu folgender Ausgabe und wird beendet, anstatt einen Tunnel zu erstellen.
INFO: Attempting to open port 22.
INFO: SSH port 22 open.
INFO: Running -N -L localPort:rdsHost:remotePort ec2-user@ip-of-instance
Ist es möglich, mit EB-CLI einen Tunnel zu erstellen?
Antwort1
Ja.
Wie Sie gesehen haben, ist die Dokumentation nicht sehr klar, aber wenn Sie das Flag -e
oder verwenden --custom
, müssen SieAuch-i
Geben Sie dem zugrunde liegenden Befehl das Flag an ssh
, sonst wird nicht der richtige Schlüssel verwendet.
Der vollständige Befehl würde also wie folgt aussehen (z. B. zum Tunneln von Port 9229):
eb ssh --custom 'ssh -i ~/.ssh/keyfile.pem -L 9229:localhost:9229'