Ich habe eine Netzwerkbastion, die unter öffentlich zugänglich ist, example.compute-1.amazonaws.com
und eine private Postgres-Datenbankinstanz unterpostgres.example.us-east-1.rds.amazonaws.com:5432
Ich kann mit in die Bastion ssh
$ ssh -i key.pem ec2-user@example.compute-1.amazonaws.com
Sobald ich in der Bastion bin, erstelle ich einen SSH-Tunnel mit:
$ ssh -i key.pem -L 5432:postgres.example.us-east-1.rds.amazonaws.com:5432 ec2-user@example.compute-1.amazonaws.com
Ich kann dann überprüfen, ob der Tunnel funktioniert, indem ich mit localhost von der Bastion aus eine Verbindung zur Datenbank herstelle:
$ psql -p 5432 -h localhost -U postgres
Ich kann jedoch keine Remoteverbindung mit der Datenbank herstellen (ohne in der Bastion zu sein).
$ psql -p 5432 -h example.compute-1.amazonaws.com -U postgres
psql: could not connect to server: Connection refused
Is the server running on host "example.compute-1.amazonaws.com" () and accepting
TCP/IP connections on port 5432?
Ich habe die Sicherheitsgruppe der Bastion so konfiguriert, dass eingehender Datenverkehr auf Port 5432 akzeptiert wird.
Benutze ich ssh -L
richtig? Soll ich es außerhalb der Bastion benutzen? Jeder Rat wäre sehr dankbar.