如何使用SSH传输连接到远程

时间:2014-03-01 12:42:13

标签: libgit2 rugged

让存储库的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。

1 个答案:

答案 0 :(得分:2)

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

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