让存储库的origin
遥控器有一个ssh网址。
所以下面的代码:
remote = Rugged::Remote.lookup(repo, "origin")
remote.connect(:fetch)
提出Rugged::SshError: Cannot set up SSH connection without credentials
。
看起来rugged
支持SSH传输,因为有Rugged::Credentials::SshKey
类,可以为:credentials
提供Repository.clone_at
选项。
但我没有看到任何方法在源代码中为Remote#connect
提供凭据。我错过了什么吗?
如果可以通过ssh连接,有没有办法从ssh-agent获取凭据?
似乎libgit2
可以查询ssh-agent。
答案 0 :(得分:2)
目前,Rugged不支持使用凭据进行任意远程操作,也不支持ssh-agent凭据类型。
https://github.com/libgit2/rugged/pull/304是/应该排除这一点,但由于其他事情具有更高的优先级而被忽略了一段时间,现在与Rugged的最新变化有点脱节。我想尽快解决这个问题,然后在这里更新我的答案。我也会悄悄地支持查询ssh-agent。