У меня есть настройка User A на моем веб-сервере с открытым SSH-ключом, скопированным на [F5] пользователя B на моем сервере базы данных. Идея заключается в использовании SSH-туннеля для облегчения связи между моим веб-приложением и удаленной базой данных. Я использую ufw для блокировки всего, кроме подключений ssh и порта 5432, который PostgreSQL использует для локальных подключений:
ufw default deny
ufw allow ssh/tcp
ufw allow 5432/tcp
ufw enable
Вот команда, которую я использую для открытия туннеля SSH (через веб-сервер):
ssh -L 63333:localhost:5432 userb@1.2.3.4
Запуск ~/.ssh/authorized_keys после выполнения указанной выше команды на моем веб-сервере дает следующее:
tcp 0 0 127.0.0.1:63333 0.0.0.0:* LISTEN 22560/ssh
tcp6 0 0 ::1:63333 :::* LISTEN 22560/ssh
Затем я пытаюсь подключиться к сервера базы данных на порту 63333, чтобы убедиться, что все работает:
psql -h localhost -p 63333 userb
Мне встречается следующее сообщение об ошибке:
-bash: / usr / bin / psql: No такой файл или каталогЕсть ли что-то очевидное, что я здесь отсутствует? У меня только PostgreSQL установлен на сервере базы данных. Насколько я понимаю, как только туннель находится на месте и заданы правильные параметры, не должен ли я иметь доступ к интерактивному терминалу (psql)?