2011-10-13 80 views
2

我有一個遠程開發服務器和一個git倉庫。Git鉤子和ssh代理轉發

當我從本地機器推送到此dev dev服務器時,它會運行git hook after-receive來推送heroku分段服務器上的develop分支。

我的身份被轉發到開發服務器,這是我的〜/ .ssh/config中

Host * 
    User myuser 
    ConnectTimeout 15 
    ServerAliveInterval 45 
    ForwardAgent yes 
    IdentityFile ~/.ssh/id_rsa 

我怎樣才能使所用的鉤子在Heroku上部署?

目前它不使用代理轉發,但使用開發服務器ssh身份。我們希望避免許多人推送的服務器上的ssh密鑰。

非常感謝您的意見。

回答

0

既然你連接到你的用戶爲myuser開發服務器,git的鉤子也應該運行爲爲myuser

如果您尚未創建SSH-密鑰對從您的開發服務器連接到您的Heroku 臨時服務器用戶myuser的,你需要做的。

<Login to your development server as myuser> 
ssh-keygen -t rsa 
<Upload the public key onto your heroku server's authorized_keys file> 

你需要創建一個類似的〜/ .ssh /你的開發服務器上配置用戶爲myuser可以由鉤用於連接到臨時服務器。

,並確認您可以從開發服務器嘗試此命令,看是否可以登錄到登臺服務器:

ssh heroku-staging-server 

這應該是所有:)

+0

感謝您的輸入,我實際上對通過許多ssh會話轉發同一代理而不在中間創建密鑰(實際上是新代理)感到好奇。 – albandiguer

1

所以我在此添加我的shell會話的配置文件(例如配置文件或bashrc配置文件),它完成了這項工作。

if [ ! -d /tmp/501 ]; then 
    mkdir /tmp/501 
    ssh-agent -a /tmp/501/ssh-agent.socket 
fi 

SSH_AUTH_SOCK=/tmp/501/ssh-agent.socket 
export SSH_AUTH_SOCK 
ssh-add ~/.ssh/id_rsa 

希望這會幫助別人。