2011-06-23 58 views
0

我想設置TeamCity來運行一個shell腳本,它將每一個東西都推送到我的測試服務器上。運行shell腳本做git推w/ssh鍵,權限被拒絕

構建過程是這樣的:

  • 從GitHub抓取所有代碼。
  • 運行單元測試,並建立
  • shell腳本推到使用測試服務器(亞馬遜EC2)的git

這裏的問題是,shell腳本不允許推到測試服務器,當它的由TC運營。

我得到「Permission denied(publickey)」。

從shell運行腳本時遇到了同樣的問題,但通過使用ssh-add將密鑰添加到我的用戶(運行TC的同一用戶)來獲得它的工作方式。

所以我可以手動運行腳本,但想要讓TC來運行它。

任何人都知道是否存在從TC或服務器上的shell運行shell腳本的差異?

..fredrik

回答

1

有此問題的兩個解決方案:

  • 創建與您需要啓用提交給遠程Git倉庫(這是在TC用戶的SSH密鑰更好的解決方案)
  • 你的密鑰複製到TC用戶的~/.ssh/目錄(我不建議)

ü更新:您可以通過sudoing來檢查TC用戶並嘗試ssh到目的地(使用詳細參數)。如果ssh工作,那麼git可以連接到目的地。

+0

我試過第二種解決方案,沒有工作。我認爲第一個解決方案是不可行的,因爲Amazon需要所有ssh的.pem密鑰文件。而奇怪的部分是,用TC的用戶運行腳本在shell中工作得很好,但不是從TC本身運行 – fredrik

+0

檢查權限 –