1

让存储库的origin远程有一个 ssh url。所以下面的代码:

remote = Rugged::Remote.lookup(repo, "origin")
remote.connect(:fetch)

提高Rugged::SshError: Cannot set up SSH connection without credentials

看起来rugged支持 SSH 传输,因为有Rugged::Credentials::SshKey类并且可以:credentialsRepository.clone_at. 但是我看不到任何方法可以Remote#connect在源代码中提供凭据。我错过了什么吗?

如果可以通过 ssh 连接,有没有办法从 ssh-agent 获取凭据?似乎libgit2可以查询 ssh-agent。

4

1 回答 1

2

目前,Rugged 不支持使用凭据进行任意远程操作,也不支持 ssh-agent 凭据类型。

https://github.com/libgit2/rugged/pull/304是/应该解决这个问题,但由于其他具有更高优先级的事物而被忽略了一段时间,现在有点脱节随着 Rugged 的​​最新变化。我想尽快修复这个问题,然后在这里更新我的答案。我还将偷偷支持查询 ssh-agent。

于 2014-03-01T14:40:34.393 回答