两种遥控器
##找到git版本2.41.0##支持的HTTPS凭据帮助程序:缓存、存储##找到OpenSSH_9.0p1,LibreSSL 3.3.6##默认SSH密钥:/Users/jeroen/.SSH/id_ed25519
Git支持两种类型的远程:SSH和HTTPS。这两种用途完全不同的身份验证系统。
网址 |
git@server.com |
https://server.com |
身份验证 |
个人SSH密钥 |
密码或PAT |
存储在 |
文件标识_ rsa 或ssh-代理 |
git凭证 商店 |
对于HTTPS远程,git使用用户名+密码进行身份验证。使用GitHub,您也可以使用个人访问令牌(PAT)。首选PAT,因为它们可以提供更精细的控制权限(通过PAT的作用域),您可以为不同的用途,你可以给它们起信息性的名字,它们可以选择性撤销。注意,如果在GitHub中使用2FA,则必须如果使用HTTPS协议,请使用PAT进行身份验证。
对于SSH远程服务器,git会发送到ssh公司
在您的系统上,让我们ssh公司
注意身份验证。这意味着你必须设置ssh密钥(通常~/.ssh/id_rsa
)哪个是你然后添加到您的git轮廓.
Windows特别说明
Windows不包括本机吉特
安装方式违约。我们建议使用最新版本的Windows Git.此捆绑包还包括ssh公司
和吉特windows的凭据管理器这就是你所需要的。
重要提示:ssh密钥存储在主目录中,例如:C: \用户\Jeroen\.ssh\id_rsa
、和不在中文档文件夹(R将其视为家有时)。这个ssh_home()
函数显示正确的.ssh文件
目录。
第1部分:存储HTTPS凭据
HTTPS远程并不总是需要身份验证。你可以克隆不提供任何凭据。但为了推送或私有存储库,吉特
将提示输入用户名/密码。
git克隆https://github.com/jeroen/jsonlite
为了避免反复输入密码,git包含了一个凭据助手.它有两种模式:
隐藏物
:在内存中短时间缓存凭据时间。
商店
:在您的操作中永久存储凭据系统密码管理器。
要查看为给定的回购配置了哪个助手,请运行:
##[1]“osxkeychain”
大多数吉特
安装默认为商店
如果支持,因为它更方便、更安全。然而,外观和用于输入和检索密码的git凭证存储策略可以因系统而异,因为它使用操作系统本机密码管理器。
从R访问HTTPS凭据存储
这个资格证书
R包为git凭证
用于读取和保存的命令行API资格证书。这个git_credential_ask()
函数查找来自存储区的给定URL的合适凭据。如果没有凭据可用时,它将尝试提示用户输入凭据和而是退回那些。
图书馆(凭据)
git_credential_ask('https://example.com')
##$协议##[1]“https”## ##$主机##[1]“example.com”## ##$用户名##[1]“杰伦”## ##$密码##[1]“超级副本”## ##attr(,“类”)##[1]“git_credential”
功能git_credential_update()
看起来很相似,但它的行为略有不同:它首先删除现有凭据然后提示用户输入新的用户名/密码,并将其保存到商店中。
#这应始终提示输入新凭据
git_credential更新('https://example.com')
在终端窗口中,这将产生交互式密码提示。在Windows中,用户可能会看到这样的内容(取决于Windows和git配置的版本):
设置GITHUB_PAT
自动填充您的GITHUB_PAT公司
环境变量。凭证管理器将在需要时安全地提示用户输入凭据。
资格证书::设置github_pat()
##使用Jeroen Ooms的GITHUB_PAT(凭证助手:osxkeychain)
在您的.R配置文件
如果你想的话自动设置GITHUB_PAT公司
对于每个R会话,没有将秘密硬编码为纯文本,例如Renviron公司
文件。
非交互式使用
检索凭据根据定义是交互式的,因为用户可能需要输入密码或解锁系统钥匙链。但是,有时可以保存或删除凭据非交互式,但这取决于哪个凭据助手已使用。
的手册页凭证_批准
和凭证_拒绝
提供了有关如何调用基本的git凭证api。
第2部分:管理SSH密钥
对于SSH远程,git本身不处理身份验证。吉特只需向ssh公司
并使用您的标准用户ssh配置。因此使用SSH git进行身份验证远程操作可以归结为设置ssh密钥,并将这些密钥复制到您的轮廓。
这个资格证书
包提供了一些实用程序功能让这更容易。这个ssh_key_info()
函数调用查找哪个键ssh公司
用于连接到给定服务器。这通常是~/.ssh/id_rsa
除非你有兴趣自定义ssh配置。
##$键##[1]“/Users/jeroen/.ssh/id_ed25519”## ##$pubkey(美元)##[1]“ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAILGN+5tybmwKhcxvnwPSKlrp39Ni1gMD0UhV4gCxHg/x…”
输出显示了(私有)密钥的路径以及ssh pubkey字符串。后者是您必须在GitHub配置文件到将此密钥与您的用户帐户相关联。然后你就会使用GitHub SSH远程时自动进行身份验证。
生成密钥
要使用SSH,您需要一个个人密钥,它通常存储在~/.ssh/id_rsa
。如果您还没有密钥ssh_key_info()
函数将自动询问您是否需要生成一个。
您还可以使用ssh_keygen()
功能。