2010-05-06 144 views
3

即時嘗試使用capistrano在slicehost中部署應用程序。我可以使用相同的憑證通過SSH登錄,但是當我嘗試部署它,我得到以下錯誤:部署到slicehost時發生Capistrano錯誤

  • 執行`部署「
  • 執行`部署:更新」 **交易:開始
  • 執行`部署:update_code」 本地執行的所有服務器 上更新所述緩存的結帳: 「git的LS-遠程[email protected]:xxx.git主」
  • 執行「如果[-d /家/ sdn/shared/cached-copy];然後cd/home/xxx/shared/cached-copy & & git fetch -q原點& & git reset -q --hard 910a97024a45f1304d6b50c8862605ea0f1cf829 & & git clean -q -d -x -f;其他的git克隆-q [email protected]:xxx.git /家庭/ XXX /共享/緩存拷貝& & CD /家庭/ XXX /共享/緩存拷貝& & git的結帳-q -b部署910a97024a45f1304d6b50c8862605ea0f1cf829; fi「 servers:[」173.203.79.208「] *** [deploy:update_code]回滾
  • 執行」rm -rf/home/xxx/releases/20100506160548;真正的「 服務器:[」173.203.79.208「] ** [deploy:update_code]回滾時出現異常:Capistrano :: ConnectionError,連接失敗:173.203.79.208(Net :: SSH :: Disconnect:遠程關閉的連接主機) 連接失敗:173.203.79.208(淨:: SSH ::斷開連接:連接遠程主機關閉)

什麼我做錯了什麼事,我應該添加到我的deploy.rb文件,以便要使它與slicehost一起工作嗎?

+0

期待我的服務器日誌,我得到如下: 5月6日16時44分08秒競技場的sshd [14952]:拒絕了186.28.30.49(186.28.30.49) 連接5月6日16時44分十三秒競技場sshd [14957]:拒絕連接186.28.30.49(186.28.30.49) – 2010-05-06 16:46:11

回答

1

Slicehost是否有權限從你的git服務器克隆存儲庫?如果你的git服務器需要ssh認證,你必須在你的主機上生成ssh密鑰,並把你的主機的p你的git服務器上的ublic鍵。

如果不是這樣,那麼看起來它與在主機上運行git有關。但是「(Net :: SSH :: Disconnect:由遠程主機關閉的連接)」聞起來像一個認證問題。

0

可以克林頓建議在您的服務器上生成一個密鑰,或者您可以啓用SSH代理轉發。

這意味着您不必在服務器上生成新的SSH密鑰。您使用您正在部署的計算機上已有的密鑰,並且密鑰爲轉發供在服務器上用於連接到您的git服務器。

您可以添加ssh_options[:forward_agent] = true到您的Capistrano的配方或添加主機配置到您的~/.ssh/config這樣的:

Host <name> 
    HostName <ip or host> 
    User <username> 
    IdentityFile ~/.ssh/<filename> 
    ForwardAgent yes 

我更喜歡後者。

有一個非常深入講解SSH代理轉發了在www.unixwiz.net

1

我有同樣的問題。

[email protected]:~/.ssh$ ls 
authorized_keys 

我已經在railsu和git中創建了.ssh文件。但是這個問題也在這裏。

所以我不認爲這個錯誤是身份驗證問題。