2013-01-16 39 views
2

我試圖讓這個命令爲用戶的Postgres(這樣我就可以出貨WAL文件)工作:如何讓一個服務器上的用戶「postgres」與另一個服務器進行rsync同步?

rsync -a /tmp/test [email protected]:/tmp/test 

但我得到的錯誤:

Permission denied (publickey). 

我已經運行ssh-keygeneval `ssh-agent`ssh-add作爲server1上的postgres用戶。 keygen創建了/var/lib/postgresql/.ssh/id_rsaid_rsa.pub,我可以看到它使用ssh -vvv [email protected]發送。

在服務器2上創建/var/lib/postgresql/.ssh/authorized_keys將id_rsa.pub表單中的內容放入server1中。它是由Postgres的用戶和組擁有和chmod 600 .ssh目錄也由Postgres的和chmod 700

我可以從詳細的sshd登錄Server2上Failed publickey for postgres...

我缺少的是看擁有?我猜的sshd不Server2上

+0

爾加!這應該是在Serverfault上。移到那裏=> http://serverfault.com/questions/469496 – Jake

回答

-2

假設你從服務器看着我authorized_keys文件允許密鑰認證,您只需要更新/etc/ssh/sshd_config如果你設置「AllowedUsers」,在這種情況下,你需要確保postgres在該列表中。

除此之外,只需要ssh-keygen(將私鑰密碼空留),然後將~/.ssh/authorized_keys目錄/文件添加到從服務器。 postgres的主目錄是/var/lib/postgresql,但是如果你做這些操作,而su'd爲postgres用戶,那麼你可以直接使用~,更何況你不會有chown什麼東西,因爲postgres會擁有生成的ssh密鑰主服務器和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 
相關問題