我正在使用ruby-git以编程方式执行GitHub上托管的一些操作git repos。
当我在公共存储库中执行此操作时,一切正常但是,即使我在代码运行时在机器上创建了一个ssh密钥并在GitHub上添加了公共密钥,我也无法克隆私有存储库。为了确保密钥设置正确,我已直接从终端克隆了repo,并成功克隆了repo。该密钥也已添加到ssh-agent中,并设置了$SSH_AUTH_SOCK
。
所以,我认为这个问题与我如何使用ruby-git gem有关。
这是我的(简单)代码
@repo = Git.clone("git@github.com:#{repo_full_name}.git", path)
在这里,如果它可能有用的错误
Git::GitExecuteError: git clone '--' 'git@github.com:USER/REPO.git' '/var/www/repo-root/USER/REPO' 2>&1:Cloning into '/var/www/repo-root/USER/REPO'... Permission denied (publickey). fatal: Could not read
我在这里遗漏了什么吗?
由于
答案 0 :(得分:0)
你的Git env配置是否指向你的ssh密钥路径?
Git.configure do |config|
# If you want to use a custom git binary
config.binary_path = '/git/bin/path'
# If you need to use a custom SSH script
config.git_ssh = '/path/to/ssh/script'
end