我是Git和GitHub / GitLab的新手。我尝试将项目共享到GitHub,但是会引发此异常:
Can't finish GitHub sharing process
Successfully created project 'LiveGame1' on GitHub, but initial push failed:
git@github.com: Permission denied (publickey).
Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
我还可以通过Internet链接克隆存储库,但不能通过“ git@github.com:/ username / repository_name”克隆存储库。
如何解决此错误,我可以直接与GitLab共享项目吗?
答案 0 :(得分:6)
这篇文章帮助我在Windows 10盒子上弄清一切:
https://richardballard.co.uk/ssh-keys-on-windows-10/
注意:文章的第一部分应以“在Windows中启用SSH 客户端”为标题,并应参考获取SSH 客户端 >已启用,而不是服务器。
如上一篇文章所述,如果您可以{@ {1}}工作而无需提示您输入密码,那么您就可以从IntelliJ进行推送了。
关键在于:
ssh -T git@github.com
是ssh-add
中提供的那个 C:\Windows\System32\OpenSSH
使用git config --global core.sshCommand "'C:\Windows\System32\OpenSSH\ssh.exe'"
生成密钥时,请考虑使用ecdsa算法,如下所述:https://www.ssh.com/ssh/keygen/
同样重要的是清理其他试图在Windows之外执行ssh的操作(例如Putty)。我尝试运行ssh-keygen
时一直遇到“格式无效”的问题,我认为这是由我正在使用的路径上的另一个ssh-add
程序引起的,而不是Windows附带的OpenSSH引起的。
答案 1 :(得分:3)
这里有很多建议 How to solve Permission denied (publickey) error when using Git? 和这里 Git gives me a “Permission Denied” error when writing files that I am pulling 取决于操作系统。
对我来说,在Windows中使用IntelliJ解决方案就是这里提到的解决方案: Can't access git using SSH keys。
我编辑了git-Installation中的 ssh_config -文件,IntelliJ将其与源主机一起使用,并且一切正常。
文件例如:
C:\ Program Files \ Git \ etc \ ssh \ ssh_config
在文件中进行更改,例如:
Host bitbucket.org
IdentityFile C:\Users\User\.ssh\id_ssh
答案 2 :(得分:1)
我遇到了同样的问题,并在github帐户中为intelliJ生成了公钥。
设置->开发人员设置->个人访问令牌
然后通过提供必要的范围和描述为智能生成一个新令牌。并复制令牌密钥。
之后,在intelliJ中选择“通过令牌访问登录” 。通过在显示的表单中粘贴密钥来登录。
谢谢
答案 3 :(得分:1)
我正在使用 Windows 10 和 PuTTY 身份验证代理(带有密码保护的 SSH 密钥),这对我有用 - 对于我上传我的 Bitbucket 和 Github 帐户SSH 密钥。
<块引用>在 Intellij 中集成“SSH”密钥的步骤 -
测试配置:点击“VCS > Git > Fetch”。如果“获取成功” 显示消息,您的配置成功
答案 4 :(得分:0)
这个问题太笼统了。需要更多细节来澄清。
运行git remote show -n origin
(假设您位于分支origin
上。-n
标志的意思是“请勿查询远程服务器”,这会减少Web请求的操作时间。),您可能会看到远程URL。
在许多常见情况下,例如在GitHub上,fork采用HTTPS协议
https://github.com/<user>/<repo>.git
或SSH协议
git@github.com:<user>/<repo>.git
如果字段user
不是您或您的组织之一,则您似乎在尝试为某人的存储库做出贡献。请create a pull request和Git Credentials这样做。您可能需要使用命令更改本地存储库的远程URL
git remote set-url <branch> <newurl>
如果您是user
,请检查您是否正确输入了令牌。
ssh -T git@github.com
测试连接。 更新1:您的问题git@github.com:/username/repository_name
似乎有错字。注意第一个斜杠。我不确定是否有麻烦。
更新2:检查您的Git凭证保存在File -> Settings -> Version Control -> GitHub
更新3:您也可以将其共享到GitLab,只需添加一个远程命令,例如运行命令git remote add gitlab <url>
。
答案 5 :(得分:0)
关于WebStorm,我可以分享类似的情况和答案。
我以前存储了另一个SSH
密钥的密码,我添加了一个新密钥(如果在Mac上,请不要忘记ssh-agent -s
,但WebStorm并未使用它。 / p>
在WebStorm中没有为即将出现的错误消息提供上下文,可悲的是git
中的通用上下文:
Push failed
<project>: git@<domain>: Permission denied (publickey).
Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
如在JetBrains的IntelliJ跟踪器和/或论坛(他们在这里带领我),WebStorm(并且我也假设为IntelliJ)的several,several issues中提到并链接em>使用您的SSH配置点文件。这意味着使用本机ssh
客户端(在先前版本Settings » Version Control » git » SSH Executable to "native"
中)或使用配置(Settings » Tools » SSH Configuration
s)
因此,创建或编辑SSH
config
(例如Mac:~/.ssh/config
)以包含例如
Host <domain>
User git
IdentityFile ~/.ssh/<your private SSH key file, usually `id_...`>
然后将使WebStorm在git
remote
的{{1}}上启动,并提示您输入配置的SSH密钥/ SSH配置项的密码。
(请记住要替换上面标记有domain
的占位符)。