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



让存储库的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类,并且可以为Repository.clone_at提供:credentials选项。但是我没有看到任何方法可以为源代码中的Remote#connect提供凭据。我错过了什么吗?

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

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

https://github.com/libgit2/rugged/pull/304 应该解决这个问题,但由于其他事情具有更高的优先级,已经被忽略了一段时间,现在与 Rugged 的最新变化有点脱节。我想尽快解决这个问题,然后在这里更新我的答案。我还将潜入支持查询 ssh 代理。

最新更新