我有一个带git存储库的远程开发服务器。
当我从本地计算机推送到此开发服务器时,它会在接收后运行git hook以在heroku登台服务器上推送开发分支。
我的身份被转发到开发服务器,这是我的〜/ .ssh / config
Host *
User myuser
ConnectTimeout 15
ServerAliveInterval 45
ForwardAgent yes
IdentityFile ~/.ssh/id_rsa
如何让钩子使用它来部署在heroku上?
目前它不使用转发的代理但使用开发服务器ssh标识。我们希望避免服务器上的ssh密钥,正如许多人所推动的那样。
非常感谢你的想法。
答案 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
应该是全部:)