2

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

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

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

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

我怎样才能让它被钩子用来部署在 heroku 上?

目前它不使用转发的代理,而是使用开发服务器 ssh 身份。我们希望避免服务器上的 ssh 密钥,因为很多人都在推送。

非常感谢您的想法。

4

2 回答 2

1

所以我在我的 shell 会话的配置文件中添加了这个(例如配置文件或 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

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

于 2012-09-05T02:27:26.757 回答
0

由于您使用用户myuser连接到开发服务器,因此 git 挂钩也应该以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

这应该是全部:)

于 2012-07-21T17:53:08.900 回答