Descobrir porque um túnel ssh não está funcionando

1

Eu tenho um servidor remoto que eu posso SSH em nenhum problema. Eu tenho PostgreSQL (ps) configurado no servidor remoto (chamado 'enc') e máquina local, ambos rodando em 5432 (o padrão). O servidor remoto não permite conexões de conexões externas (o servidor web local vai diretamente para ele).

Estou tentando configurar um túnel SSH para tornar os comandos em execução no servidor ps remoto mais fácil do que copiar arquivos, fazer login no servidor e executá-los manualmente nesse ponto.

Eu tentei executar o seguinte comando

ssh -N -L 5555:enc:5432 enc

O túnel parece configurado corretamente, mas quando tento conectar-me à máquina remota com

psql -p 5555

diz que não está funcionando

psql: could not connect to server: No such file or directory. Is the server running locally and accepting connections on Unix domain socket "/run/postgresql/.s.PGSQL.5555"?

É provável que isso seja um problema com as configurações no túnel ou permissões de usuário restritivas (imagino que o erro seria diferente se fosse esse o caso)?

    
por Hyposaurus 20.08.2013 / 14:31

3 respostas

1

Acontece que o problema foi mais adiante na linha. O túnel funciona corretamente no entanto, em seguida, tentando se conectar ao postgres você tem que passar o -h (mesmo é para localhost) caso contrário, ele tentará se conectar através de um soquete unix (que está lá no erro) e não sobre tcp (que é a única maneira de trabalhar com um túnel).

    
por 22.08.2013 / 14:56
1

Tente isto:

ssh -N -L 5555:enc:5432 localhost

e depois

lsof -i :5555

Se você não vê nada lá, sua máquina local não está ouvindo nada.

    
por 20.08.2013 / 14:54
0

Digite

netstat -anp | grep LISTEN | grep "port_number"

na máquina do servidor e procure o endereço IP no qual o serviço está sendo executado.

Se for o endereço IP da máquina, você deve mencionar aquele no comando ssh -L, senão se for o endereço de loopback (127.0.0.1 - ipv4 ou :: 1 - ipv6) mencione isso no comando.

    
por 24.05.2016 / 14:45