Postgres用户SSH无密码跨服务器互访配置

需积分: 50 10 下载量 110 浏览量 更新于2024-09-08 收藏 130KB DOCX 举报
“postgres用户下ssh无密码登录”的过程主要涉及两个关键步骤:配置SSH密钥对和设置权限,以便在两台服务器上的postgres数据库用户之间实现无密码互访。 首先,确保SSH服务允许RSA和公钥认证。在RHEL/CentOS系统中,编辑`/etc/ssh/sshd_config`文件,将`RSAAuthentication`和`PubkeyAuthentication`设为`yes`,并确保`AuthorizedKeysFile`指向`.ssh/authorized_keys`。同时,检查`SELINUX`配置,确保其已禁用或设置为`permissive`或`disabled`,因为强制安全级别可能会阻止无密码登录。 接下来,重启SSH服务以应用配置更改。在RHEL/CentOS中,可以使用`service sshd restart`命令。 然后,生成SSH密钥对。在每台服务器上,使用`ssh-keygen -t rsa`命令创建一个新的RSA密钥对。默认情况下,私钥将保存在`~/.ssh/id_rsa`,公钥保存在`~/.ssh/id_rsa.pub`。 为了实现无密码登录,需要将公钥复制到远程服务器的`~/.ssh/authorized_keys`文件中。在本地主机上,使用`ssh-copy-id user@remote_host`命令将公钥发送到远程服务器。记得调整`.ssh`目录和`authorized_keys`文件的权限,通常是`700`和`600`。 对于postgres用户,由于它通常是非交互式用户,我们需要以postgres用户身份运行`ssh-keygen`,然后将生成的公钥追加到postgres用户的`~/.ssh/authorized_keys`文件中。这可以通过切换到postgres用户(如`su - postgres`),执行`ssh-keygen`,然后退出root用户并追加公钥到相应位置来完成。 最后,确保在双方服务器上,postgres用户的公钥都已被添加到各自的`authorized_keys`文件中,且权限设置正确。这样,postgres用户就可以在两台服务器之间无密码地通过SSH进行互访,方便进行数据库的管理和同步等操作。 这个过程简化了数据库管理员的工作,减少了每次登录时输入密码的繁琐,提高了工作效率,同时也提升了安全性,因为只有拥有正确密钥的用户才能访问系统。但务必注意,尽管无密码登录简化了操作,也应确保系统的安全措施,防止未经授权的访问。