如何使用 git2r 通过 ssh 推送 git 存储库?

How to push git repository through ssh using git2r?

我正在尝试使用 git2r 包(版本 0.21.0)。
我总是在我的项目中使用 ssh 连接(GitHub 和 GitLab 托管):我可以用 RStudio IDE 和命令行做 git pull/push
我有一个标准的 Ubuntu Xenial 配置;我的密钥以标准名称存储在 ~/.ssh 中,我的 ssh-agent 是 运行,并且密钥已添加到 ssh-agent。我的问题是如何使用 git2r 包来推送 ssh?

这是我使用非常基本的工作流程所做的(在 master 上工作,远程名称是 origin):

library(git2r)
repo <- init("path_to_clone")
remote_url(repo)
[1] "git@gitlab.com:account/repository.git"
credentials <- cred_ssh_key()
str(credentials)
Formal class 'cred_ssh_key' [package "git2r"] with 3 slots
  ..@ publickey : chr "/home/user/.ssh/id_rsa.pub"
  ..@ privatekey: chr "/home/user/.ssh/id_rsa"
  ..@ passphrase: chr(0) 
# some work, add(), commit()...
push(repo, "origin", "refs/heads/master", credentials = credentials)
 Error in .local(object, ...) : 
   Error in 'git2r_push': unsupported URL protocol 

ssh 协议是否在 git2r 包中实现?我错过了什么吗?`


编辑: 我确实错过了一些东西。但是,什么?

libgit2_features()
$threads
[1] FALSE
$https
[1] FALSE
$ssh
[1] FALSE

我终于找到了我错过的东西。我在安装 git2r.
之前忘记安装 libssh2-1-dev 库 类似的问题.

安装libssh2-1-dev

sudo apt-get install libssh2-1-dev