не могу подключиться по SSH к удаленной базе данных Postgresql

не могу подключиться по SSH к удаленной базе данных Postgresql

Я пытаюсь подключиться через графический интерфейс pgAdmin3 к базе данных Postgresql на удаленном сервере myHost через порт 5432.

Серверная сторона:

  • У меня есть Unix myUser, который соответствует роли postgresql.
  • pg_hba.conf это:
    локальный все все доверие
    хост все все 127.0.0.1/32 доверие

Сторона клиента :

  • Я открываю ssh-туннель: ssh -L 3333:myHost:5432 myUser@myHost
  • Я подключаюсь к серверу через pgAdmin3 (или через psql -h localhost -p 3333).

Я получаю следующее сообщение об ошибке:
Сервер неожиданно закрыл соединение. Это, вероятно, означает, что сервер аварийно завершил работу до или во время обработки запроса.

Я попытался получить доступ к определенной базе данных с ролью суперпользователя, используя psql -h localhost -p 3333 --dbname=myDB --user=mySuperUser, но безуспешно.

Что я забыл в настройках?
Спасибо

решение1

Проверьте, разрешает ли удаленный хост туннелирование. Вы можете проверить у клиента, отклонен ли туннель, с помощью:

ssh -v -L 3333:myHost:5432 myUser@myHost

решение2

В моем случае проблема была в том, что туннель заканчивался на IPv6-адресе:

ssh -L 5434:localhost:5432 user@server

Достаточно было заменить localhost на адрес, который, как я предполагал, использовался ранее:

ssh -L 5434:127.0.0.1:5432 user@server

15 минут моей жизни коту под хвост. :) Надеюсь, это сэкономит чье-то время...

решение3

Если кто-то все еще ищет решение:

Попробуйте установить в /etc/ssh/sshd_config:

AllowTcpForwarding yes
GatewayPorts yes

затем:

service sshd restart

решение4

Убедитесь, что вы на самом деле не подключаетесь к локальному экземпляру Postgres, прослушивающему тот же порт, который вы выбрали для локального конца туннеля.

Если локальный порт используется, sshвыведет сообщение об ошибке и пропустит настройку туннеля. Но он все равно подключится к удаленному серверу, что может привести к тому, что ошибка исчезнет с экрана. Поскольку вы можете подключиться, вы не подозреваете, что с туннелем что-то не так, пока вы, в качестве последнего средства, не остановите удаленный Postgres и не выясните, что вы можетевсе ещесоединять.

Не спрашивайте меня, откуда я это знаю.

Связанный контент