2

このコマンドをユーザーpostgresとして機能させようとしています(walファイルを出荷できるように):

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

しかし、私はエラーが発生します:

Permission denied (publickey).

server1 で postgres ユーザーとして実行ssh-keygen eval `ssh-agent`しました。ssh-addkeygen が作成され/var/lib/postgresql/.ssh/id_rsaid_rsa.pubを使用して送信されていることがわかりますssh -vvv postgres@server2

私が作成した server2 に/var/lib/postgresql/.ssh/authorized_keys、id_rsa.pub フォーム server1 の内容を入れます。これは、postgres ユーザーとグループ、および chmod 600 によって所有されています。.sshディレクトリは、postgres および chmod 700 によっても所有されています。

server2 の詳細な sshd ログから、Failed publickey for postgres...

私は何が欠けていますか?sshd が server2 上の自分の authorized_keys ファイルを見ていないと推測しています

4

1 に答える 1

-2

スレーブサーバーがキー認証を許可すると仮定すると、/etc/ssh/sshd_config「AllowedUsers」を設定した場合にのみ更新する必要があります。その場合postgres、そのリストにあることを確認する必要があります。

それ以外は、ssh-keygen(秘密鍵のパスフレーズを空のままにする)だけで、~/.ssh/authorized_keysディレクトリ/ファイルをスレーブサーバーに追加します。のホーム ディレクトリはpostgresですが、ユーザーとして 'd で/var/lib/postgresqlこれらの操作を行う場合は、マスター サーバーで生成された ssh キーを所有し、所有するため、何もする必要がないことは言うまでもありません。スレーブサーバーに作成されたディレクトリ/ファイル。supostgres~chownpostgrespostgres

マスター サーバーとスレーブ サーバーの両方で、ファイルのアクセス許可を安全に設定してください。

マスター上

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
于 2016-07-28T05:17:33.503 に答える