Eu tenho um bastião de rede que é acessível publicamente em example.compute-1.amazonaws.com
e uma instância de banco de dados privada do postgres empostgres.example.us-east-1.rds.amazonaws.com:5432
Eu posso ssh no bastião usando
$ ssh -i key.pem [email protected]
Então, quando estou no bastião, crio um túnel ssh com:
$ ssh -i key.pem -L 5432:postgres.example.us-east-1.rds.amazonaws.com:5432 [email protected]
Posso então verificar se o túnel funciona conectando-se ao banco de dados a partir do bastião usando localhost:
$ psql -p 5432 -h localhost -U postgres
No entanto, não consigo me conectar ao banco de dados remotamente (sem estar no bastião).
$ 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?
Eu configurei o grupo de segurança do bastião para aceitar o tráfego de entrada na porta 5432.
Estou usando ssh -L
corretamente? Devo usá-lo fora do bastião? Qualquer conselho seria muito apreciado.
fonte
Isso funcionou para mim. Verifique se o cliente psql está instalado localmente.
Ao criar sua instância do db no aws, defina o seguinte:
Também tive que criar um grupo de segurança para a VPC em que o banco de dados estava localizado. Depois de criá-lo, verifique se a instância do db usa isso para o seu grupo de segurança. O grupo de segurança possui as seguintes regras:
fonte