![não é possível conectar via SSH a um banco de dados Postgresql remoto](https://rvso.com/image/515151/n%C3%A3o%20%C3%A9%20poss%C3%ADvel%20conectar%20via%20SSH%20a%20um%20banco%20de%20dados%20Postgresql%20remoto.png)
Estou tentando conectar via GUI pgAdmin3 a um banco de dados Postgresql em um servidor remoto myHost na porta 5432.
Lado do servidor:
- Eu tenho um myUser Unix que corresponde a uma função postgresql.
- pg_hba.conf é:
local todos todos confiáveis
host todos todos 127.0.0.1/32 confiança
Lado do cliente:
- Eu abro um túnel ssh: ssh -L 3333:myHost:5432 myUser@myHost
- Eu me conecto ao servidor via pgAdmin3 (ou via psql -h localhost -p 3333 ).
Eu recebi a seguinte mensagem de erro :
o servidor fechou a conexão inesperadamente Isso provavelmente significa que o servidor foi encerrado de forma anormal antes ou durante o processamento da solicitação.
Tentei acessar um banco de dados específico com a função de superusuário usando psql -h localhost -p 3333 --dbname=myDB --user=mySuperUser sem mais sucesso.
O que esqueci na configuração?
Obrigado
Responder1
Verifique se o host remoto permite tunelamento. Você pode verificar com o cliente se o túnel foi recusado com:
ssh -v -L 3333:myHost:5432 myUser@myHost
Responder2
No meu caso, o problema era que o túnel terminava em um endereço IPv6:
ssh -L 5434:localhost:5432 user@server
Foi o suficiente para substituir localhost pelo endereço que eu presumi ser usado anteriormente:
ssh -L 5434:127.0.0.1:5432 user@server
15 minutos da minha vida pelo ralo. :) Espero que isso poupe o tempo de outra pessoa ...
Responder3
Se alguém ainda estiver procurando por solução:
Tente configurar em /etc/ssh/sshd_config:
AllowTcpForwarding yes
GatewayPorts yes
então:
service sshd restart
Responder4
Certifique-se de não estar realmente se conectando a uma instância local do Postgres escutando na mesma porta que você selecionou para a extremidade local do túnel.
Se a porta local estiver em uso, ssh
imprimirá uma mensagem de erro e ignorará a configuração do túnel. Mas ele ainda se conectará ao servidor remoto, o que pode fazer com que o erro saia da tela. Como você consegue se conectar, você não suspeita que algo esteja errado com o túnel até que, como último recurso, interrompa completamente o Postgres remoto e descubra que você podeaindaconectar.
Não me pergunte como eu sei disso.