Eu tenho a configuração do Usuário A no meu servidor da Web com sua chave pública de SSH copiada para o ~/.ssh/authorized_keys
do Usuário B no meu servidor de banco de dados. A idéia é usar um túnel SSH para facilitar a comunicação entre meu aplicativo da web e o banco de dados remoto. Estou usando ufw
para bloquear tudo, exceto as conexões ssh e a porta 5432 que o PostgreSQL usa para conexões locais:
ufw default deny
ufw allow ssh/tcp
ufw allow 5432/tcp
ufw enable
Aqui está o comando que eu uso para abrir o túnel SSH (via servidor web):
ssh -L 63333:localhost:5432 [email protected]
A execução de netstat -lpnt | grep 63333 | grep ssh
após o comando acima no meu servidor web gera o seguinte:
tcp 0 0 127.0.0.1:63333 0.0.0.0:* LISTEN 22560/ssh
tcp6 0 0 ::1:63333 :::* LISTEN 22560/ssh
Em seguida, tento conectar-me ao servidor de banco de dados na porta 63333 para verificar se tudo está funcionando:
psql -h localhost -p 63333 userb
Recebi a seguinte mensagem de erro:
-bash: / usr / bin / psql: Nenhum desses arquivos ou diretório
Existe algo óbvio que estou sentindo falta aqui? Eu só tenho o PostgreSQL instalado no servidor de banco de dados. Pelo que entendi, uma vez que o túnel está no lugar, e dado os parâmetros certos, não deveria ter acesso ao terminal interativo (psql)?