【问题标题】:Git hook and ssh Agent ForwardingGit hook 和 ssh 代理转发
【发布时间】:2012-09-05 10:27:26
【问题描述】:

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

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

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

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

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

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

非常感谢您的想法。

【问题讨论】:

    标签: git ssh hook forwarding ssh-agent


    【解决方案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
    

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

    【讨论】:

      【解决方案2】:

      由于您使用用户 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
      

      应该就是这样了:)

      【讨论】:

      • 感谢您的意见,我真的很想通过许多 ssh 会话转发同一个代理而不在中间创建密钥(实际上是新代理)。
      猜你喜欢
      • 2019-07-12
      • 2018-09-14
      • 2012-08-20
      • 1970-01-01
      • 1970-01-01
      • 2015-07-09
      • 1970-01-01
      • 2014-07-14
      • 2015-03-22
      相关资源
      最近更新 更多