Назад | Перейти на главную страницу

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

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

На стороне сервера:

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

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

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

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

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

ssh -L 5434:localhost:5432 user@server

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

ssh -L 5434:127.0.0.1:5432 user@server

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

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

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

Похоже, вам нужно добавить разрешения для вашего пользователя для доступа к postgresql нелокально.

Я знаю, что создается впечатление, что, создавая туннель, вы подключаетесь локально, но вы, вероятно, не получаете к нему доступ через loopback / localhost.

Вероятно, вам нужно добавить строку в pg_hba.cong, я бы привел пример, но я на своем телефоне, извините

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

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

AllowTcpForwarding yes
GatewayPorts yes

затем:

service sshd restart

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

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

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