Git hook和ssh Agent Forwarding

时间:2011-10-13 21:37:44

标签: git ssh hook forwarding ssh-agent

我有一个带git存储库的远程开发服务器。

当我从本地计算机推送到此开发服务器时,它会在接收后运行git hook以在heroku登台服务器上推送开发分支。

我的身份被转发到开发服务器,这是我的〜/ .ssh / config

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

如何让钩子使用它来部署在heroku上?

目前它不使用转发的代理但使用开发服务器ssh标识。我们希望避免服务器上的ssh密钥,正如许多人所推动的那样。

非常感谢你的想法。

2 个答案:

答案 0 :(得分:1)

所以我在shell会话的配置文件中添加了这个(例如profile或bashrc conf)并且它完成了这项工作。

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

希望这会对某人有所帮助。

答案 1 :(得分:0)

由于您使用 myuser 连接到开发服务器,因此git hook也应该以 myuser 的形式运行。

如果您尚未为用户 myuser 开发服务器创建用于连接 heroku登台服务器的ssh-keypairs,则需要这样做。

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

您需要在开发服务器上为用户 myuser 创建类似的〜/ .ssh / config,钩子可以使用它来连接到登台服务器。

并确认您可以从开发服务器尝试此命令,以查看它是否可以登录到登台服务器:

ssh heroku-staging-server

应该是全部:)