web-dev-qa-db-ja.com

リモートサーバーからのsshとgitのプル

サーバー1からサーバー2にSSHで接続し、サーバー1からサーバー2にgit pullを実行しようとしています。

したがって、サーバー1で、次のコマンドを実行します。

ssh root@server2 'cd /root/.example; git pull Origin master'

しかし、それは私にこのエラーを与えます:

Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights

Ls(ssh root@server2 'cd /root/.example; ls)を実行すると、/root/.exampleディレクトリの内容が表示されるため、sshを実行できます。間違ったキーを使用しているため、git pull Origin masterを実行できません。

何が違うのですか?

Centos6を使用しています。

1
Brown PO

Gitリポジトリにアクセスできるユーザーにsshする必要があります。 rootにSSH接続する場合は、rootが少なくともリポジトリへのriead権限を持っていることを確認してください(gitolite、gitlabなどのスマートバージョンのgitを使用している場合)。

ところで、これでリリースしようとしている場合は、gitpullの代わりにgit fetch && git reset --hard Origin/masterを使用してください。 Gitプルはマージを行い、競合で終了する可能性があります。gitリセットは、実際のヘッドポインターを、マージせずに別のコミットに移動するだけです。

1