サーバー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を使用しています。
Gitリポジトリにアクセスできるユーザーにsshする必要があります。 rootにSSH接続する場合は、rootが少なくともリポジトリへのriead権限を持っていることを確認してください(gitolite、gitlabなどのスマートバージョンのgitを使用している場合)。
ところで、これでリリースしようとしている場合は、gitpullの代わりにgit fetch && git reset --hard Origin/master
を使用してください。 Gitプルはマージを行い、競合で終了する可能性があります。gitリセットは、実際のヘッドポインターを、マージせずに別のコミットに移動するだけです。