У меня есть сервер PostgreSQL, и его клиентом является отдельный компьютер. Они в одной сети. Если я использую команду psql, например
psql --host db_ip_address --port 5432 --user user base_name
подключение проходит нормально и все работает.
Но если я открою SSH-туннель на сервер БД, например:
ssh -L 63333:localhost:5432 root@db_ip_address
а затем попробуйте сделать то же самое, например:
psql --host localhost --port 63333 --user user base_name
чем он внезапно выводит сообщение об ошибке:
psql: FATAL: Ident authentication failed for user "user"
В pg_hba.conf на сервере есть такие строки:
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all trust
# IPv4 local connections:
host all all 127.0.0.1/32 trust
host all all 192.168.0.49/32 trust
host all all 192.168.0.50/32 trust
host all all 192.168.0.48/32 trust
# IPv6 local connections:
host all all ::1/128 ident
Мне нужно использовать туннели SSH, потому что мне действительно нужен еще один туннель для моего собственного компьютера, и это единственный способ получить на нем соединение для db. И я не хочу менять какую-либо конфигурацию или базу на сервере PostgreSQL, потому что он работает в режиме реального времени. Надеюсь на помощь.