我在使用GitHub时遇到了麻烦。我正在玩Git的远程存储库。
当我现在尝试对远程目录进行任何更改时,即
git remote show origin
或
git push -u origin master
我收到此错误
权限被拒绝(publickey)。 致命的:无法从远程存储库读取。
请确保您拥有正确的访问权限 并且存储库存在。 Ulrichs-MacBook-Pro:coredatatest ulrichheinelt $ git push -u origin master 权限被拒绝(publickey)。 致命的:无法从远程存储库读取。
当我再次使用新的(空的)远程目录时,我会很高兴。或者有办法解决这个错误吗?
这是我昨天开始使用GitHub的第一步...... 非常感谢提前!
修改1
https://github.com/UlliH/CoreDataTest/settings 的我的设置
...
修改2
太早开心: - (
设置SSH和GPG密钥后,错误仍然相同。 : - /
编辑3
我认为这是正确的,但仍然是一样的......
答案 0 :(得分:14)
Edit Profile
按钮
它位于网页的右上角。 Personal Settings
菜单。 SSH and GPG keys
选项并按下它。New SSH key
来添加新密钥。答案 1 :(得分:12)
ssh-keygen -t rsa -b 4096 -C "your_email@foo.com"
生成SSH密钥。 cat id_rsa.pub
Github profile -> Settings ->
SSH and GPG Keys -> Add new SSH key
。答案 2 :(得分:3)
生成密钥
SSH-密钥生成
可视化您的密钥
ls~ / .ssh
id_rsa id_rsa.pub
启动座席
eval ssh-agent
将您的密钥添加到代理商
ssh-add~ / .ssh / id_rsa
答案 3 :(得分:2)
对我来说,我必须设置什么主机使用什么SSH密钥。
在本地计算机SSH文件夹中,通常在~/.ssh
下使用首选编辑器创建/编辑名为config
的文件,例如 vim 或 gedit
vim ~/.ssh/config
并在您的git 主机, HostName 和ssh IdentityFile (您的ssh私钥文件路径)中添加以下内容:
Host gitlab.example.com
HostName gitlab.example.com
IdentityFile /home/YOURUSERNAME/.ssh/id_rsa
答案 4 :(得分:1)
在 Windows 上,我在 powershell 或命令提示符下使用 git
时遇到了问题。在 Windows 上使用 Git Bash 为我解决了这个问题,因为它允许 ssh-agent
在后台正常运行,并允许转发 SSH 凭据以使其正常工作。
按照 Git Bash 中此链接中的说明对我有用:https://docs.github.com/en/github/authenticating-to-github/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent
答案 5 :(得分:0)
确保您已将"公钥命名为#34;和#34;私钥"文件正确;就像" id_rsa"和" id_rsa.pub"。这是您可以在users / .ssh文件夹中找到的内容。
在GitHub中添加公钥
重新启动终端(支持bash)并尝试再次克隆
如果您拥有对repo的写入权限,那么您应该更好地了解这些更改。
根据经验(花了一个小时后),我找不到任何论坛上的任何信息,表明我们必须明确保留上面提到的私人和公共文件的名称。
快乐的编码!
答案 6 :(得分:0)
我的ssh连接遇到相同的问题。我尝试通过ssh进行操作,但是找不到适用的解决方案。因此,在这种情况下,我将远程URL从SSH更改为HTTPS。我使用了命令:
$ git remote set-url origin https://github.com/USERNAME/REPOSITORY.git
。
您可以使用以下命令查看更改的远程URL:
$ git remote -v
。
您可以在Here
上找到更多详细信息这会将您的远程URL更改为HTTPS,因此您现在必须输入GitHub用户名和密码才能将项目推送到远程仓库。我知道ssh比HTTPS容易,这意味着您不必键入用户名和密码,但是如果您没有找到通过ssh修复它的任何解决方案,这可能会有所帮助,并且您急于推动您的代码到您的仓库。
答案 7 :(得分:0)
如果您在Bitbucket上遇到相同类型的问题,那么以下是解决方法:
问题:
------
演示@ L90TQCLQ MINGW64 / u / works(主)
$ git clone ssh://git@bitbucket.internal.abc.com:5449 / rem / jenkinspipeline.git
克隆到“ jenkinspipeline”中...
git@bitbucket.internal.abc.com:权限被拒绝(公钥)。
致命:无法从远程存储库读取。
请确保您具有正确的访问权限 并且存储库存在。
解决方案:
演示@ L90TQCLQ MINGW64 / u / works(主)
$ cat <〜/ .ssh / id_rsa.pub
SSH-RSA AAAAB3NzaC1yc2EAAAADAQABAAABAQC99aqMXtBpVvCQb6mezTHsftC3CFY9VOpGaNmckmcTzXoOOWOheeM9V2NTrOWxpbE3UNdL / 6ZnmPyv5EI2zPMPstVIP5jAqcmxOvGc2zxy4wHeGTgrP6UaXs2nLScV4E7 + rmdaVtSsfOa1i + eU2eg4UnIJpRLtGD6N + hMKJXaXWpGfQ79USiPhPQKDGOz3PeEDggyvHs7HUzaKZpwEeIKYOSDXsvDwTJ6s5uQ30YfX3eoQbAis8TJeQejAmkuu62oSOs5zFJMSTAzakiyXW / xCUsLrnUSzxmBKO2BIA / tSTrqW / Gj0VhDniDFGwGz0K1NfLzfEJLWKvdB2EJWVFjEd demo.user@abc.com
转到:https://bitbucket.internal.abc.com/plugins/servlet/ssh/projects/REM/repos/jenkinspipeline/keys 1)添加密钥 将id_rsa.pub键值复制/粘贴到此处:
KDemo @ L90TQCLQ MINGW64 / u / works(主) $ git clone ssh://git@bitbucket.internal.abc.com:5449 / rem / jenkinspipeline.git 克隆到“ jenkinspipeline”中... remote:枚举对象:1146,完成。 远程:计数对象:100%(1146/1146),已完成。 远程:压缩对象:100%(987/987),已完成。 远程:总计1146(增量465),已重用0(增量0) 接收物体:100%(1146/1146),149.53 KiB | 172.00 KiB / s,已完成。 解析增量:100%(465/465),已完成。
答案 8 :(得分:0)
对于那些使用 Windows 并且即使按照上述解决方案仍然无法弄清楚的人。我按照这些来使它工作。
ssh-keygen -t rsa -b 4096 -C "your email"
生成 SSH 密钥type id_rsa.pub
的输出复制到剪贴板*我没有使用 ssh-add id_rsa
,因为它已完成将此私钥 (id_rsa) 添加到保险库中
答案 9 :(得分:-1)
以我在Linux上使用git的短暂经验,我发现有两个简单的答案可以解决此错误。
按此顺序运行这些命令
git remote set-url --add origin <https://github.com/username/repo>
git remote set-url --delete origin <git@github.com:username/repo>
这会将您的配置文件重新配置为使用HTTPS起源而不是SSH。
现在尝试运行推或拉命令。
OR
重新引导Linux VM(如果使用的是)和/或主机。重新启动已经多次为我解决了这个问题。
答案 10 :(得分:-2)
我浪费了很多时间后得到了它......
在 Shravan40 接受的答案中,一切都还可以,但是我在github.com上添加了一个新的存储库,添加了一个新的README.md,这导致了错误
ERROR: Repository not found.
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
经过多次尝试,我添加了一个新的存储库没有一个新的README.md,一切都很好,但我不知道原因。 :-(直到昨天,在新的尝试中,我终于注意到了......
所以除了Shravan40s之外,我的解决方案是
也许它会帮助别人......