7

我正在尝试找到一种方法来编写一个 bash 脚本,该脚本将在每个午夜自动从我们的 Private Github 存储库中提取并更新我们的开发站点。

由于显而易见的原因,我们的仓库是私有的,而且我发现的任何接近的东西总是要求输入密码。我们的服务器有它自己的 Github 帐户,用于从存储库中推送和拉取,但我只是不知道如何自动执行此操作。

谁能指出我正确的方向?

4

1 回答 1

14

为了自动化您的推/拉,您需要设置无密码身份验证。为此,您使用 ssh(而不是 https)。如果您之前没有在 github 上使用过 ssh,或者根本没有使用过 ssh,那么您需要执行几个步骤来配置。

在您的机器上,生成一个 ssh 密钥:

$ ssh-keygen -t rsa

确保将密码短语字段留空。这使得本地私钥未加密,但对于通过 Internet 进行的实际通信来说同样安全。

~/.ssh/id_rsa.pub然后,在 Account Settings | 下上传到 github SSH 密钥

现在你应该可以在没有密码的情况下从那台机器上推拉。试试看:

git clone git@github.com:user/repo.git

然后,您可以根据需要将这些命令放入您的 bash 脚本中。如果您需要对多台机器执行此操作,则需要上传每个密钥,或将私钥 ( ~/.ssh/id_rsa) 复制到每台机器。

有关更多信息,请参阅 github帮助。另请查看部署密钥页面,因为这可能会为您的情况提供更好的安全粒度。

于 2012-05-02T22:31:34.597 回答