Linux

postgres遠端連接的工作

  • January 17, 2017

psql遠端連接如何工作(預設配置)?它是否使用 ssh 或任何其他協議?

我正在使用linux機器(centos 6.8)和postgresql9.5版本。

它是 PostgreSQL 開發的協議中的直接 tcp 連接。如果伺服器配置為支持它,它可以使用加密。您不需要使用 SSH。

遠端連接替代方案:

  • 通過 postgres 協議進行遠端未加密
  • 通過 postgres 協議進行 TLS 加密遠端
  • SSH 到伺服器然後使用 psql/pgadmin local

從遠端主機使用 psql 實用程序進行連接

psql -h yourserver.com.br -U yourusername yourdatabase

如何通過postgresql協議配置遠端訪問

postgresql.conf

listen_address = '*' 

listen_address必須更改配置以允許在 postgres 協議上進行遠端連接。

ssl_ciphers = 'HIGH:!aNULL'

如果您比普通管理員更偏執,ssl_ciphers可以更改以提高加密強度。讀取行中的範例僅允許具有超過 128 位密鑰的密碼,並且不允許未加密的連接。如果您想了解有關密碼的更多資訊,可以查看openssl 手冊

ssl_cert_file = (...)
ssl_key_file = (...)

控制在ssl_(...)_file哪裡可以找到 ssl 證書。在 ubuntu 和 debian 中,這被設置為由 openssl 安裝生成的自簽名證書。但您可以將其更改為有效的 SSL 證書。Postgres 客戶端(如 psql、pgadmin 和嵌入程式語言(如 php))將根據受信任的權限檢查證書鏈。

pg_hba.conf

hostssl (...)

在所有地方,您都可以host (...)在 pg_hba 中將其替換hostssl (...)為以強制您的客戶端使用 SSL 連接。

引用自:https://dba.stackexchange.com/questions/159723