我使用Git已经有一段时间了,但不断的密码请求开始让我感到很烦。

我使用的是Mac OS X和GitHub,我按照GitHub的设置Git页面的指示设置Git和SSH密钥。

我还将github SSH密钥添加到了我的Mac OS X密钥链中,正如github的SSH密钥密码页面中提到的那样。我的公钥已在Git中注册。

然而,每次我尝试Git拉时,我都必须输入用户名和密码。除了SSH密钥之外,我是否需要为此设置其他东西?


当前回答

在GitHub中使用密钥之前,请按照教程中的步骤测试SSH连接:

$ ssh -T git@github.com
# Attempts to ssh to GitHub

其他回答

当我升级到macOS v10.12(Sierra)时,我就遇到了这种情况。看起来SSH代理在升级时被清除了。

$ ssh-add -L
The agent has no identities.

只需运行ssh-add即可找到我的现有身份。我输入了密码,很高兴再去一次。

运行macOS Cataline 10.15时,密钥链缓存方法对我不起作用

以下是对我有用的:

git remote rm origin

git remote add origin https://your_git_username:your_git_password@github.com/path_to_your_git.git

这也应该在GitLab上运行

确保用户名包含电子邮件地址,以删除@email部分,否则您将收到一个错误,说明URL使用了错误/非法格式或缺少URL。

希望这有帮助!

我认为您可能有错误的Git存储库URL。

打开.git/config并找到[remote“origin”]部分。确保您使用的是SSH:

ssh://git@github.com/username/repo.git

如果单击克隆或下载并选择SSH,您可以在存储库的主页面中看到SSH URL。

而不是https或git:

https://github.com/username/repo.git
git://github.com/username/repo.git

现在,您可以只使用SSH密钥而不是用户名和密码进行验证。

如果Git抱怨已经添加了'origin',请打开.config文件,将[remote origin]后面的url=“…”部分编辑为url=ssh://github/username/repo.git


其他服务也是如此。确保地址如下:protocol://something@网址

例如,Azure DevOps的.git/config:

[remote "origin"]
    url = https://mystore@dev.azure.com/mystore/myproject/
    fetch = +refs/heads/*:refs/remotes/origin/*

Windows和GitHub使用SSH推/拉Git指南:Windows Git图解指南

下载并安装PuTTY设置环境变量“GIT_SSH”=“path\to\plink.exe”(在已安装的腻子文件夹中)-非常重要!!!重新启动Windows资源管理器以使环境变量生效(不能仅重新启动命令提示符)运行puttygen.exe生成新密钥,将公钥复制到GitHub站点将此新私钥保存在磁盘上的安全位置(最好不要Dropbox)运行putty.exe并将SSH连接到github.co通过运行“shell:startup”快速进入启动文件夹。通过选美让您的私钥启动Windows。使用语法“path\to\pageage.exe”“path \to\privatkey”在Startup文件夹中创建快捷方式我们不需要在存储库的.git/config中设置“puttykeyfile”设置非常重要的是,使用的是GitHub的“SSH克隆URL”,而不是HTTPS。

在windows机器中:安装GitHub CLI

choco install gh

然后运行命令:

gh auth login

并遵循说明

您也可以点击此链接:

https://cli.github.com/manual/gh_auth_login