2017-07-18 7 views
2

私はプライベートサーバのリモートリポジトリ内にポスト受信スクリプトを持っています。私が望むのは、遠隔レポがプッシュを受け取るたびにギブスするようにプッシュを実行することです。私はそれが最初に彼らはマスターブランチで何かを変更しないことを確認することと同様に、いくつかのセキュリティチェックを通過することができるようにこれを行う、などポスト受信フック内でgithubを実行する

これはスクリプトです:

私coolrepoがAで
#!/bin/sh 
git --work-tree=/var/www/html/beta --git-dir=/var/repo/beta.git checkout -f 
current_branch=$(git symbolic-ref HEAD | sed -e 's,.*/\(.*\),\1,') 
git push [email protected]:kevuno/mycoolrepo.git $current_branch 

GitHubのプライベートレポ。

私はすでにSSH鍵を追加しているので、リモートサーバ上のrepo内で手動プッシュを実行できます。これにより、ssh認証はすべてうまく動作します。しかし、私がポスト受信フックからプッシュしようとすると、突然単に動作しません。これは私が得るエラーです

remote: Host key verification failed. 
remote: fatal: Could not read from remote repository. 
remote: 
remote: Please make sure you have the correct access rights 
remote: and the repository exists. 

助けていただければ幸いです。

+1

あなたのsshフックはおそらくあなたのユーザーとして実行されません –

+0

そう、プッシュを行うユーザーとしてコードが実行されているようです。 sudoとしてコマンドを実行しようとすると、エラー – Kevuno

答えて

0

私はそれは、ユーザが適切な認証でのGitHubにアクセスすることができ、同じ~user/.ssh/id_rsa(.pub)公開鍵/秘密鍵を持っていないルートを意味し、エラー

を示しSUDOとしてコマンドを実行しようとした場合。

しかし、そのスクリプトがユーザーthe OPcommentsとして

sudo -S -u otheruser .... 

ように、その特定のコマンドを実行できることを意味し、rootとして実行されることを意図されている場合:

しかし、私は変更する必要がありますsudoersファイルを作成して、パスワードを入力せずにsudoコマンドを実行できるようにします。

+0

が表示されるか、他のユーザー環境で表示されますが、必要はありません:https://unix.stackexchange.com/q/176997/ 7490 – VonC

+0

しかし、私はそのユーザーにパスワードを入力せずにsudoコマンドを実行できるようにsudoersファイルを変更する必要があります。 – Kevuno

+0

@ user3667660良い点。より視認性の高い答えをあなたのコメントに追加しました。 – VonC

関連する問題