2014-06-22 56 views
0

我正在使用Capistrano將Rails應用程序部署到Linux服務器。當我運行任何Capistrano的任務,我得到以下錯誤:Net :: SSH :: AuthenticationFailed與Capistrano部署時

Net::SSH::AuthenticationFailed: Authentication failed for user [email protected] 

我使用Capistrano的2.15.5和淨SSH 2.9.1。我正在部署到一個全新的Linux服務器,它有兩個用戶:root和adam。我在deploy.rb如下:

set :user, "adam" 
set :password, "my_password" 

上述錯誤,只有當我試圖部署爲用戶亞當發生時,我可以部署爲root用戶。因此我認爲這可能與linux安裝/權限有關,而不是capistrano安裝。我不確定問題出在哪裏,任何人都可以幫忙嗎?

非常感謝,

亞當

+0

我強烈建議您從部署腳本中刪除所有密碼,創建一些SSH密鑰,並配置SSH代理轉發(如果您從GitHub或其他遠程存儲庫進行部署)。在您的服務器上禁用密碼驗證也是明智之舉。這是相當不安全的。 – Jon

+0

@AdamP什麼是您的net-ssh gem版本?如果它不是2.7.0。嘗試改變到該版本,並嘗試一次 – anusha

+0

解決 - 謝謝anusha,更改net-ssh到2.7.0做竅門 – AdamP

回答

0

首先,確保你能SSH登錄到服務器部署用戶。一旦你可以做到這一點,確保你可以訪問部署目錄並在其中創建文件等。

一旦這一切都奏效,Capistrano會有一些專門設計的部署任務,以檢查您是否擁有所有必備權限。運行它們。

之後,你應該很好去。

從您粘貼的錯誤看來,您似乎缺乏基本訪問權限,無法通過SSH使用您使用的用戶名/密碼組合登錄。

根據我對你的問題的評論 - 你應該認真考慮放棄SSH密鑰的密碼。

+0

謝謝喬恩。我同意這看起來像我缺乏基本的訪問權限 - 奇怪的是,我可以作爲用戶亞當SSH進入服務器沒有任何問題。此外,我可以使用用戶root部署capistrano,並且不會出現此錯誤。你有什麼想法我可能需要看什麼權限?我不知道從哪裏開始! – AdamP