Git钩子和ssh代理转发
我有一个带有git存储库的远程开发服务器 当我从本地机器推送到这个dev服务器时,它会在receive之后运行git钩子,以推送到heroku临时服务器上的development分支 我的身份被转发到开发服务器,下面是我的~/.ssh/configGit钩子和ssh代理转发,git,ssh,hook,forwarding,ssh-agent,Git,Ssh,Hook,Forwarding,Ssh Agent,我有一个带有git存储库的远程开发服务器 当我从本地机器推送到这个dev服务器时,它会在receive之后运行git钩子,以推送到heroku临时服务器上的development分支 我的身份被转发到开发服务器,下面是我的~/.ssh/config Host * User myuser ConnectTimeout 15 ServerAliveInterval 45 ForwardAgent yes IdentityFile ~/.ssh/id_rsa 如何让钩子使用它在h
Host *
User myuser
ConnectTimeout 15
ServerAliveInterval 45
ForwardAgent yes
IdentityFile ~/.ssh/id_rsa
如何让钩子使用它在heroku上部署
目前,它不使用代理转发,而是使用开发服务器ssh标识。我们希望避免在服务器上使用ssh密钥,因为很多人都在推
非常感谢您的想法。既然您是用您的用户myuser连接到开发服务器,git钩子也应该以myuser的身份运行 如果您尚未为usermyuser创建ssh密钥对,以便从开发服务器连接到heroku登台服务器,则需要这样做
<Login to your development server as myuser>
ssh-keygen -t rsa
<Upload the public key onto your heroku server's authorized_keys file>
就这些:)所以我在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
希望这能帮助一些人谢谢你的输入,我真的很好奇在很多SSH会话中转发同一个代理而不在中间创建密钥(实际上是新的代理)。
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