2014-03-27 154 views
2

我想部署一個應用程序,當我運行cap部署:檢查所有看起來像罰款,但是當我嘗試部署它然後我得到以下錯誤:部署Rails應用程序與Capistrano - 權限被拒絕(公鑰)

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

Please make sure you have the correct access rights 
and the repository exists. 
*** [deploy:update_code] rolling back 
    * executing "rm -rf /var/www/app/releases/20140327233712; true" 
    servers: ["IP"] 
    [IP] executing command 
    command finished in 676ms 
Command git ls-remote [email protected]:user/app.git staging returned status code pid 5458 exit 128 

我已經在我的服務器中生成了密鑰(ssh-keygen -t rsa -C「lorem ..」),然後我在bitbucket中添加了這個密鑰,但是我仍然遇到了權限問題。

編輯:

在我使用AWS時,我創建了新的實例,我把它保存到我的本地機器生成的密鑰的deploy.rb文件:ssh_options [:鍵] = [」 /Users/user/Documents/app.pem「],然後我在我的服務器中生成密鑰,並將它添加到Bitbucktet(」home/ubuntu/.ssh/id_rsa.pub「),所以我認爲我需要添加密鑰我的本地(「app.pem」)機器到Bitbucket,但是當我嘗試這樣做時,我得到和Bitbucket中的錯誤:無效的SSH密鑰(ssh-keygen)。

回答

1

確保用戶說明capistrano進程正在連接到Bitbucket,因爲它可以訪問您生成的私鑰並在嘗試連接到Bitbucket時傳遞它。

您收到的錯誤:Permission denied (publickey)是由於capistrano正在使用的私鑰與您在Bitbucket中存儲的公鑰之間的不匹配。

+0

在deploy.rb文件中,我使用AWS在創建新實例時生成的密鑰,並將其保存到本地計算機:ssh_options [:keys] = [「/ Users/user/Documents/app。 pem「]然後我在我的服務器中生成密鑰,並將其添加到Bitbucktet(」home/ubuntu/.ssh/id_rsa.pub「),所以我認爲我需要添加我本地的密鑰(」app.pem「 )機器到Bitbucket,但當我嘗試這樣做時,我得到和Bitbucket中的錯誤:無效的SSH密鑰(ssh-keygen)。 – darkcode

+0

您不需要對AWS生成的密鑰進行任何操作。如果你正在運行capistrano作爲'ubuntu'用戶,你通過將公鑰添加到Bitbucket中來做正確的事情。改變你的capistrano配方:ssh_options [:keys] =「/ home/ubuntu/.ssh/id_rsa」。請注意,這是私鑰。 –

相關問題