Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git clone始终要求个人访问令牌(私有回购)_Git_Authentication_Github_Git Clone - Fatal编程技术网

Git clone始终要求个人访问令牌(私有回购)

Git clone始终要求个人访问令牌(私有回购),git,authentication,github,git-clone,Git,Authentication,Github,Git Clone,每次我尝试克隆私人回购时,都会收到添加用户名和密码的提示 我环顾四周看了看有什么问题,因为我添加了密码,但不起作用,发现我必须使用个人访问令牌。 现在,每次我试图克隆私有回购时,我都必须添加(或生成另一个)令牌 有没有办法在没有令牌的情况下克隆私有git回购?或者至少能够添加我的密码而不是该令牌?您可以使用SSH进行克隆,并使用SSH密钥进行身份验证。关于如何使用SSH设置git有很多问题,对于其他提供商来说也非常类似。设置后,不要忘记使用SSH URL(而不是HTTPS URL)克隆repo,

每次我尝试克隆私人回购时,都会收到添加用户名和密码的提示

我环顾四周看了看有什么问题,因为我添加了密码,但不起作用,发现我必须使用个人访问令牌。 现在,每次我试图克隆私有回购时,我都必须添加(或生成另一个)令牌


有没有办法在没有令牌的情况下克隆私有git回购?或者至少能够添加我的密码而不是该令牌?

您可以使用SSH进行克隆,并使用SSH密钥进行身份验证。关于如何使用SSH设置git有很多问题,对于其他提供商来说也非常类似。设置后,不要忘记使用SSH URL(而不是HTTPS URL)克隆repo,或者将克隆的repo的
来源更改为SSH URL。

通过HTTPS访问存储库时,可以使用git凭据存储来存储用户名和密码。

然后

git pull
这将询问您的用户名和密码,然后记住以备将来使用。请注意,运行上述命令将在
~/.git credentials
处创建一个文件,并以纯文本形式存储凭据,这可能会带来安全风险。 另一种方法是将凭据存储在内存而不是磁盘中。为此,您可以运行以下命令

git config credential.helper 'cache --timeout=3600'

这样git就不会在磁盘上存储任何文件,而是使用内存来存储凭据。此处的
timeout
参数用于指定凭据应在接下来的1小时内缓存。

解决方案

这就是我如何使它工作的

打开一个新的终端并添加

ssh-keygen-t rsa-b4096-C“[github电子邮件地址]”

终端显示了以下内容:

生成公共/私有rsa密钥对。[按回车键]
输入保存密钥的文件(/home/${USER}/.ssh/id\u rsa):
输入密码短语(无密码短语为空):[按Enter键]
再次输入相同的密码:[按Enter键]

然后

cd/.ssh
ls[您应该看到3个文件]
cat[file].pub

复制内容,然后转到您的Github配置文件设置->SSH和GPG密钥->新建SSH密钥->从[file]粘贴内容。发布在那里。
完成此操作后,我可以使用SSH克隆github repo,而无需添加令牌。

您可以添加有关源git repo的信息吗,是在github上吗?bitbucket,gitlab是一个裸git服务器吗?它是否配置了ssh密钥和/或LDAP?
git config credential.helper 'cache --timeout=3600'