gpt4 book ai didi

ssh - 如何允许一台服务器上的用户 "postgres"rsync 到另一台服务器?

转载 作者:行者123 更新时间:2023-12-02 14:10:30 26 4
gpt4 key购买 nike

我试图让这个命令作为用户 postgres 工作(所以我可以发送 wal 文件):

rsync -a /tmp/test postgres@server2:/tmp/test

但我得到了错误:
Permission denied (publickey).

我跑了 ssh-keygen eval `ssh-agent`ssh-add作为 server1 上的 postgres 用户。注册机已创建 /var/lib/postgresql/.ssh/id_rsaid_rsa.pub我可以看到它是使用 ssh -vvv postgres@server2 发送的.

在 server2 上,我创建了 /var/lib/postgresql/.ssh/authorized_keys将 id_rsa.pub form server1 的内容放入其中。它归 postgres 用户和组以及 chmod 600 所有。 .ssh目录也归 postgres 和 chmod 700 所有。

我可以从 server2 上的详细 sshd 日志中看到 Failed publickey for postgres...
我错过了什么?我猜 sshd 没有在 server2 上查看我的 authorized_keys 文件

最佳答案

假设你的从服务器允许 key 认证,你只需要更新/etc/ssh/sshd_config如果您设置了“AllowedUsers”,在这种情况下您需要确保 postgres在那个列表中。

除此之外,只需ssh-keygen (将私钥密码留空),然后添加 ~/.ssh/authorized_keys目录/文件到从服务器。 postgres 的主目录是 /var/lib/postgresql ,但是如果您在 su 时执行这些操作'd 为 postgres用户,您可以使用 ~ ,更不用说你不必 chown任何东西,因为postgres将拥有主服务器上生成的 ssh key ,以及 postgres将拥有从服务器上创建的目录/文件。

请务必在主服务器和从服务器上安全地设置文件权限:

在主人

chmod 700 ~/.ssh

chmod 600 ~/.ssh/id_rsa

chmod 600 ~/.ssh/id_rsa.pub

chmod 600 ~/.ssh/known_hosts # this one won't exist until you SSH once

在奴隶
chmod 700 ~/.ssh

chmod 600 ~/.ssh/authorized_keys

关于ssh - 如何允许一台服务器上的用户 "postgres"rsync 到另一台服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14350610/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com