Создание туннеля SSH на сервере PostgreSQL
Листинг 8.14. Создание туннеля SSH на сервере PostgreSQL
[user@local ~]$ ssh -L 4001:remotehost:5432 userPremotehost
user@remotehost's password: [user@remote -]$
[user@local -]$ psql -h localhost -p 4001 tempiatel
Welcome to psql, the PostgreSQL Interactive terminal.
Type: \copyright for distribution terms
\h for help with SQL commands
\? for help on internal slash commands
\g or terminate with semicolon to execute query
\q to quit
tempiatel=#
Примечание 1
Примечание 1
Если после создания туннеля SSH вам не нужно переходить в режим командной строки, как это происходит по умолчанию, включите в команду ssh ключ -Т. В этом случае после аутентификации терминал перестает реагировать на действия пользователя. После завершения сеанс прерывается комбинацией клавиш Ctrl+C.
Единственный недостаток механизма туннелей SSH заключается в том, что он требует наличия системной учетной записи для пользователя, подключающегося к PostgreSQL. SSH не предоставляет абсолютно прозрачного доступа к шифрованным потокам данных до тех пор, пока пользователь не инициирует соединение и не пройдет аутентификацию у демона ssh, обычно называемого sshd. В зависимости от ситуации это ограничение может приносить как пользу, так и вред.
Тем, кто захочет создать туннель шифрования данных еще более общего характера, стоит рассмотреть возможность использования пакета Stunnel.