Git不断提示我输入密码

无人久伴 提交于 2020-01-07 01:28:59

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

我已经使用Git一段时间了,但是不断要求输入密码的人开始把我推向高潮。

我正在使用Mac OS X和GitHub,并按照GitHub的“ 设置Git”页面的说明设置了Git和SSH密钥。

GitHub的SSH密钥密码页面所述,我还向我的Mac OS X钥匙串添加了github SSH密钥。 我的公钥已在Git中注册。

不过,每次我尝试Git拉时,都必须输入用户名和密码。 我需要为此设置除SSH密钥以外的其他东西吗?


#1楼

配置credential.helper

在OS X(现在为macOS)上,在Terminal中运行此命令:

git config --global credential.helper osxkeychain

它使Git可以使用文件Keychain.app来存储用户名和密码,并从钥匙串中检索通向您的SSH私钥的密码。

对于Windows使用:

git config --global credential.helper wincred

故障排除

如果正确配置了Git凭证帮助器,则macOS会将密码短语保存在钥匙串中。 有时SSH和存储在钥匙串中的密码短语之间连接可能会断开。 运行ssh-add -Kssh-add ~/.ssh/id_rsa再次将密钥添加到钥匙串。

macOS v10.12(Sierra)更改为ssh

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

Host *
   AddKeysToAgent yes
   UseKeychain yes
   IdentityFile ~/.ssh/id_rsa

从10.12.2的ssh_config man页中:

UseKeychain

在macOS上,指定在尝试使用特定密钥时系统是否应在用户的密钥链中搜索密码短语。 当用户提供密码短语时,此选项还指定一旦被验证正确,是否应将密码短语存储在钥匙串中。 参数必须为“是”或“否”。 默认为“否”。

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

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


#2楼

我认为您已解决了您的问题,但是我看不到这里的解决方案对我有所帮助,所以就在这里。

输入终端:

echo "" > ~/.ssh/known_hosts

这将清空您的known_hosts文件,并且您必须添加已使用并已连接的每个主机,但是它解决了问题。


#3楼

使用此方法:用适当的主机名替换github.com

git remote set-url origin git@github.com:user/repo.git

#4楼

我同意“ codehugger”并使用“ orkoden”的说明对我有用-在NetBeans 7.3上-右键单击文件并选择上下文菜单时-推动-打开“推到远程”窗口-有两个这里的选项:

  1. origin:https://github.com/myaccount/myproject.git/

  2. https://github.com/myaccount/myproject.git/

如您所见,区别在于URL中的origin参数-您不想选择此选项(1),而是要检查选项(2),这对我来说很好。


#5楼

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

  1. 下载并安装PuTTY
  2. 设置环境变量'GIT_SSH'='path \\ to \\ plink.exe'(在已安装的腻子文件夹中)- 非常重要
  3. 重新启动Windows资源管理器以使环境变量生效(不能仅重新启动命令提示符)
  4. 运行puttygen.exe生成新密钥,将公共密钥复制到GitHub站点
  5. 将此新私钥保存在磁盘上的安全位置(最好不是Dropbox
  6. 运行putty.exe并将SSH连接到github.co
  7. 通过运行“ shell:startup”快速进入启动文件夹。
  8. 通过Pageant使Windows的私钥启动。 在启动文件夹中使用语法“ path \\ to \\ pageant.exe”“ path \\ to \\ privatekey”创建快捷方式
  9. 我们不需要在存储库的.git / config中设置'puttykeyfile'设置
  10. 非常重要的是,使用的是GitHub的“ SSH克隆URL”,而不是HTTPS。
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!