2015-11-02 97 views
1
$commitMessage = 'Auto commit from admin panel '.date('d.m.Y H:i:s', time()); 

chdir(__DIR__.'/../../../..'); 
$res[] = shell_exec('git add --all 2>&1'); 
$res[] = shell_exec('git commit -a -m "'.$commitMessage.'" 2>&1'); 
$res[] = shell_exec('git push origin master 2>&1'); 
$res[] = shell_exec('git status 2>&1'); 

輸出: 主機密鑰驗證失敗。致命:無法從遠程存儲庫讀取。請確保您擁有正確的訪問權限並存在存儲庫。混帳推PHP和主機密鑰驗證混帳推命令後未能

但在此之前我運行如下命令:

sudo -u www-data ssh-keygen -t rsa 
sudo chown www-data:www-data -R ~/.ssh/known_hosts 
sudo chown www-data:www-data -R /project 

(其中找到.git目錄)

後,我添加SSH密鑰來到位桶SSH密鑰(未部署)。

+0

您是否嘗試過手動克隆爲www數據? ('su www-data'作爲root用來獲得一個shell) –

+0

這是訪問被拒絕... http://www.howtogeek.com/168119/fixing-warning-unprotected-private-key-file-on-linux/ –

回答

1

此錯誤意味着您連接到的域的主機密鑰(我認爲,來自您的評論的bitbucket)已更改。這是他們不同的關鍵,​​不是你的。

我會檢查,看看他們最近改變了他們的主機密鑰,並且,如果他們有,你可以用

$ ssh-keygen -R bitbucket.org 

刪除舊鑰匙要小心,一個未知的主機密鑰可能意味着中間人攻擊。所以在做這件事之前確定它確實是bitbucket的關鍵。

+0

Okey,我從php env運行這個命令。但這個錯誤沒有解決之後。 我檢查known_hosts並返回此命令: /var/www/.ssh/known_hosts已更新。原始內容保留爲/var/www/.ssh/known_hosts.old –

+0

@DanielAndreyev,嗯,好的,試着運行'git remote -v'來驗證它實際上是位於遠程的bitbucket。如果不是,請再次驗證主機密鑰已更改,然後在必要時將其刪除。 – criswell

+0

但git遠程-v返回我正確的答案 - 兩個倉庫拉和推... 如果我在終端上運行git push origin master,它的工作,但如果我使用shell_exec它沒有工作。 –