我试过谷歌搜索并阅读http://help.github.com/troubleshooting-ssh/和各种各样的指南.我无法git push -u origin master或git push origin master(同一命令).
我的git帐户至少有2年左右的时间.我已经成功地push -u origin master在我的笔记本电脑上创建了回购和罚款,但在这个桌面上我遇到了问题.
这是我试过的:
1.我已经设置了我的git用户名
2.我已经设置了我的git用户电子邮件
3.我已将/home/meder/.ssh/id_rsa.pub的内容上传到github的帐户页面.我已经验证我没有粘贴任何空格
4.我用这些内容创建了一个〜/ .ssh/config:
Host github.com
User git
Hostname github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa
Run Code Online (Sandbox Code Playgroud)
我已经将.ssh修改为700,id_rsa 600
5.我添加了正确的远程原点而没有输入错别字:git remote add origin git@github.com:medero/cho.git
6.要确认#5,这是我的.git/config.目录是正确的,而不是另一个目录:
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = git@github.com:medero/cho.git
Run Code Online (Sandbox Code Playgroud)
7. ssh git@github.com -v给我一个成功的身份验证
8.一个奇怪的事情是,它给我打招呼的用户名已t附加到它上面.我的github用户名medero不是medert.
你好mederot!您已成功通过身份验证,但GitHub不提供shell访问权限.
9.我不在代理或防火墙之后
10.提供密钥,继承人的输出-v:
Run Code Online (Sandbox Code Playgroud)debug1: Host 'github.com' is known and matches the RSA host key. debug1: Found key in /home/meder/.ssh/known_hosts:58 debug1: ssh_rsa_verify: signature correct debug1: SSH2_MSG_NEWKEYS sent debug1: expecting SSH2_MSG_NEWKEYS debug1: SSH2_MSG_NEWKEYS received debug1: SSH2_MSG_SERVICE_REQUEST sent debug1: SSH2_MSG_SERVICE_ACCEPT received debug1: Authentications that can continue: publickey debug1: Next authentication method: publickey debug1: Offering public key: /home/meder/.ssh/id_rsa debug1: Remote: Forced command: gerve mederot debug1: Remote: Port forwarding disabled. debug1: Remote: X11 forwarding disabled. debug1: Remote: Agent forwarding disabled. debug1: Remote: Pty allocation disabled. debug1: Server accepts key: { some stuff, dont know if i should share it debug1: Remote: Forced command: gerve mederot debug1: Remote: Port forwarding disabled. debug1: Remote: X11 forwarding disabled. debug1: Remote: Agent forwarding disabled. debug1: Remote: Pty allocation disabled. debug1: Authentication succeeded (publickey).
11.这是我使用的命令
mkdir cho
git init
touch README
git add README
git commit -m 'test'
git remote add origin git@github.com:medero/cho.git
git push -u origin master
Run Code Online (Sandbox Code Playgroud)
12.我不想创建新的SSH密钥.
13.如果我使用ssh git clone并进行编辑,提交和git推送,我会得到同样的东西.
14.这是实际错误:
$ git push
ERROR: Permission to medero/cho.git denied to mederot.
fatal: The remote end hung up unexpectedly
Run Code Online (Sandbox Code Playgroud)
15.我已经设置了我的github用户名和github令牌:
$ git config --global github.user medero $ git config --global github.token 0123456789yourf0123456789token为系统上的所有git实例设置GitHub令牌
16.我已经确认我的github用户名是NOT mederot而且我的github令牌是我的帐户页面的CORRECT(验证前2个字符和最后2个字符).
17.确认#16,〜/ .gitconfig包含
[github]
token = mytoken...
user = medero
Run Code Online (Sandbox Code Playgroud)
18.ssh-key add ~/.ssh/id_rsa如果有必要,我做了......
说法:
我怀疑有可疑之处,因为当我的ssh认证,用户问候mederot,不medero,这是我的ACCT.我的github帐户中的某些内容可能被错误地缓存了吗?
我还怀疑一些本地的ssh缓存怪异,因为如果我mv ~/.ssh/id_rsa KAKA和mv ~/.ssh/id_rsa.pub POOPOO,并且ssh git@github.com -v它仍然验证我并说当我重命名它时它服务于我的/home/meder/.ssh/id_rsa?!它必须缓存?!
Ali*_*han 148
谷歌搜索了几天后,我发现这是与我的情况类似的唯一问题.
但是,我刚解决了这个问题!所以我在这里给出答案,以帮助其他人搜索这个问题.
打开"Keychain Access.app"(你可以在Spotlight或LaunchPad中找到它)
在类别中选择"所有项目"
搜索"git"
删除所有旧的和奇怪的项目
尝试再次推动它只是工作
Mar*_*air 33
在步骤18中,我认为你的意思是ssh-add ~/.ssh/id_rsa?如果是这样,那说明了这一点:
我还怀疑一些本地ssh缓存怪异,因为如果我mv~/.ssh/id_rsa KAKA和mv~/.ssh/id_rsa.pub POOPOO,并且执行ssh git@github.com -v,它仍然验证我并说它服务我的/home/meder/.ssh/id_rsa我改名了吗?!它必须缓存?!
...因为它ssh-agent正在缓存你的密钥.
如果您查看GitHub,则会有一个mederot帐户.你确定这与你无关吗?GitHub不应该允许将相同的SSH公钥添加到两个帐户,因为当您使用git@github.com:...URL时,它会根据SSH密钥识别用户.(这不应该被允许在这里得到确认.)
因此,我怀疑(按可能性递减顺序)下列情况之一是这样的:
如果不是1,那么我会向GitHub报告,所以他们可以检查2或3.
更多 :
ssh-add -l检查是否存在多个标识,如果是,则通过ssh-add -d将其删除"该密钥文件"
Sar*_*esh 13
它是由于冲突.
清除ssh-agent中的所有密钥
ssh-add -d ~/.ssh/id_rsa
ssh-add -d ~/.ssh/github
Run Code Online (Sandbox Code Playgroud)
添加github ssh密钥
ssh-add ~/.ssh/github
Run Code Online (Sandbox Code Playgroud)
它现在应该工作.
lea*_*nne 11
在Mac上,如果您有多个GitHub登录但未使用SSH,请使用以下命令强制正确登录:
git remote set-url origin https://username@github.com/username/repo-name.git
Run Code Online (Sandbox Code Playgroud)
如果您在推送到私有存储库时遇到问题,这也可以.
我正在使用Mac,通过从keychain访问应用程序中删除github记录来解决问题:这是我做的:
以上步骤是从@spyar复制的,以方便使用.
我发现解决方案与@spyar提供的相同,即存储旧用户名的Keychain Access应用程序.
这种情况有两种解决方案:
要么
成
git@github.com:用户名/ repo.git
希望这可以帮助.