【发布时间】:2014-11-15 16:54:15
【问题描述】:
我正在创建一个 node.js 应用程序,该应用程序用作 Github 的 Web 挂钩,它将在推送更改时自动部署某个私有存储库。为了使 webhook 应用程序尽可能高效,我想在部署时克隆私有 repo 并将其拉入 webhook 的 Heroku 实例中的临时目录中,这样当 webhook 触发时,我只需要“git pull”即可获取最新的更新并部署它们。在部署 webhook 应用程序(使用 package.json 或 Procfile)时运行 shell 脚本很容易,但在运行 git 命令之前,我必须安装私有部署密钥。目前私钥和公钥在我的 webhook 存储库中(我知道,我知道,一旦我让它工作我会做得更好)所以我尝试通过将它添加到我的 shell 脚本来安装它(建议 here)
mkdir /app/.ssh
cp config/ssh/* /app/.ssh/
mkdir /tmp/repos
git clone --bare ssh://github.com/<username>/<repo>.git /tmp/repos/<repo>
但我得到了:
在 /tmp/repos/assets/ 中初始化空的 Git 存储库 主机密钥验证失败。 致命:远端意外挂断
公钥已作为部署密钥添加到我正在提取的存储库中,所以我的问题是:
- 我是否将私钥安装在正确的目录中?
- 私钥文件是否必须具有特定名称?
- 这种方法是否可行/推荐?
- 如果不是最好的选择是什么?
谢谢!
【问题讨论】: