首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Git一直提示我输入密码

Git一直提示我输入密码
EN

Stack Overflow用户
提问于 2011-10-15 04:24:18
回答 31查看 427.2K关注 0票数 749

我使用Git已经有一段时间了,但不断有人要求我输入密码,这让我非常恼火。

我使用的是Mac和GitHub,我按照GitHub的Set Up Git page的指示设置了Git和我的SSH密钥。

正如GitHub's SSH key passphrases page上提到的,我还将github SSH密钥添加到我的Mac-OS-X密钥链中。我的公钥是用Git注册的。

然而,每次我尝试Git pull时,我都必须输入我的用户名和密码。除了SSH密钥之外,我还需要为此设置其他内容吗?

EN

回答 31

Stack Overflow用户

回答已采纳

发布于 2011-10-15 05:10:51

我想你可能弄错了Git仓库的URL。

打开.git/config并找到远程“源”部分。确保您使用的是SSH:

代码语言:javascript
运行
复制
ssh://git@github.com/username/repo.git

如果单击Clone或download并选择ssh,则可以在存储库的主页中看到SSH URL。

而不是httpsgit

代码语言:javascript
运行
复制
https://github.com/username/repo.git
git://github.com/username/repo.git

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

如果Git报告'origin' has already been added,请打开.config文件,并在[remote origin]url = ssh://github/username/repo.git后编辑url = "..."部件

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

例如,Azure DevOps的.git/config

代码语言:javascript
运行
复制
[remote "origin"]
    url = https://mystore@dev.azure.com/mystore/myproject/
    fetch = +refs/heads/*:refs/remotes/origin/*
票数 865
EN

Stack Overflow用户

发布于 2012-07-11 16:44:20

配置credential.helper

在OS X(现在的macOS)上,在终端中运行此命令

代码语言:javascript
运行
复制
git config --global credential.helper osxkeychain

它使Git能够使用文件Keychain.app来存储用户名和密码,并从密钥链中检索私有SSH密钥的密码短语。

对于Windows使用:

代码语言:javascript
运行
复制
git config --global credential.helper wincred

对于Linux使用:

代码语言:javascript
运行
复制
git config --global credential.helper cache // If you want to cache the credentials for some time (default 15 minutes)

代码语言:javascript
运行
复制
git config --global credential.helper store // if you want to store the credentials for ever (considered unsafe)

注意:第一个方法将在内存中缓存凭据,而第二个方法将以纯文本格式将它们存储在~/.git-credentials中。

有关Linux方法的更多信息,请查看here

有关这三个项目的更多信息,请查看here

故障排除

如果正确配置了Git凭据助手,macOS会将密码短语保存在密钥链中。有时connection between SSH and the passphrases stored in the keychain可能会崩溃。运行ssh-add -Kssh-add ~/.ssh/id_rsa将密钥再次添加到密钥链。

macOS v10.12 ( ssh )对ssh的更改

对于macOS v10.12 (Sierra),每次重新启动后都需要运行ssh-add -K。要避免这种情况,请使用此内容创建~/.ssh/config

代码语言:javascript
运行
复制
Host *
    AddKeysToAgent yes
    UseKeychain yes
    IdentityFile ~/.ssh/id_rsa

在10.12.2上的ssh_config man页面中:

UseKeychain On macOS,指定在尝试使用特定密钥时,系统是否应在用户的密钥链中搜索密码短语。当用户提供密码短语时,此选项还指定密码短语在被验证为正确后是否应存储到密钥链中。参数必须为'yes‘或'no’。默认值为'no‘。

苹果添加了Technote 2449,它可以解释发生了什么。

在macOS Sierra之前,ssh会显示一个对话框,询问您的密码短语,并提供将其存储到密钥链中的选项。此UI在一段时间前已弃用,并已被删除。

票数 591
EN

Stack Overflow用户

发布于 2016-09-21 20:17:03

当我升级到macOS v10.12 (塞拉)时,这种情况就发生在我身上。看起来SSH代理在升级时被清除了。

代码语言:javascript
运行
复制
$ ssh-add -L
The agent has no identities.

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

票数 151
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7773181

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档