Git要求输入错误URL的密码

6

在 GitHub 创建仓库后,我按照 GitHub 给出的指示进行操作:

$ echo "# test" >> README.md
$ git init
$ git add README.md
$ git commit -m "first commit"
$ git remote add origin https://github.com/user/test.git
$ git push -u origin master

(在上面的URL中,实际的用户名被替换为user。)

然后我被Ksshaskpass询问:

输入 'https://xxxxxxxx@github.com' 的密码:

(没有要求输入用户名。) 这个xxxxxxxx实际上是我在创建GitHub账户时使用的初始密码。但是我的密码被拒绝了,所以我无法推送数据。

我希望得到类似以下输出内容

$ git push -u origin master
Username: <username>
Password: <password>

我删除了~/.gitconfig,但情况并没有改变(尚未询问用户名)。不存在目录~/.git。因此我怀疑有一个错误的配置文件,可能是我很久以前创建的,但我找不到它。
你能给我任何关于这种现象的提示吗?
环境:openSUSE 13.2,git-2.1.4-13.1.x86_64
3个回答

5
将远程URL更改为ssh
使用https每次运行git pull/push/fetch时都会要求您输入密码。请按照以下步骤设置ssh密钥:
  • 生成新的ssh密钥(如果您已经有一个密钥,则跳过此步骤)
    ssh-keygen -t rsa -C“your@email”

  • 一旦您在home/.ssh目录(或Windows下的Users/<your user>.ssh)中设置了密钥,请打开它并复制内容


如何将sh密钥添加到github帐户?

  • 登录github帐户

  • 点击右上角的牧场(设置)
    github account settigns

  • 点击SSH keys
    ssh key section

  • 点击Add ssh key
    Add ssh key

  • 粘贴您的密钥并保存

  • 更改远程URL git remote set-url origin <new_ssh_url>

您已经准备好了:-)


我一开始只尝试了HTTPS,因为它是推荐的。但在阅读了您的答案后,我已经切换到SSH。它可以正常工作(在“rsa”前面没有连字符)。非常感谢! - H. Shindoh
当然。 :-) -t 是证书类型。默认值为 rsa。 - CodeWizard

1
从kwallet中删除ksshaskpass的错误信息可能会有所帮助。

1
在Linux下,我的解决方法是打开KWallpaperManager,在搜索栏中搜索错误设置的密码作为用户帐户成为错误URL的一部分,删除该条目,然后再次尝试推送提交。凭据过程从头开始,因此当它要求输入帐户(通过在文本框旁边写“密码”来误导用户)时,在第二个对话框中输入git用户名,然后输入密码。一切都设置正确,我可以在任何客户端(命令行或GUI)继续进行git操作。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接