我是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.
我也可以通过互联网链接克隆一个存储库,但不能通过“git@github.com:/username/repository_name“。
如何修复这个错误,我可以直接将我的项目分享到GitLab吗?
8条答案
按热度按时间svgewumm1#
这篇文章帮助我在我的Windows 10机器上做好了准备:
https://richardballard.co.uk/ssh-keys-on-windows-10/
注意:本文的第一节标题应为“在Windows中启用SSH客户端”,并且应指启用SSH客户端,而不是服务器。
如果您可以让
ssh -T git@github.com
在不提示您输入密码的情况下工作(如上面的文章所述),那么您就可以很好地从IntelliJ推送。关键在于:
ssh-add
是C:\Windows\System32\OpenSSH
中提供的ssh-add
git config --global core.sshCommand "'C:\Windows\System32\OpenSSH\ssh.exe'"
使用
ssh-keygen
生成密钥时,请考虑使用下面描述的ecdsa算法:https://www.ssh.com/ssh/keygen/同样重要的是清理任何其他试图在Windows之外执行ssh的程序(比如Putty)。我在尝试运行
ssh-add
时一直面临的一个问题是“无效格式”,我认为这是由我正在使用的路径上的一个不同的ssh-add
程序引起的,而不是Windows附带的OpenSSH程序。0aydgbwb2#
根据操作系统的不同,这里有很多建议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-File,IntelliJ在源代码的主机中使用了该文件,并且所有文件都工作正常。
文件,例如:
C:\程序文件\Git\etc\ssh\ssh配置文件
文件内的变更,例如:
编辑:正如在注解中提到的(对于Linux),在Windows上也可以在本地用户主目录中添加一个配置文件:
C:\Users\<USER>\.ssh\config
与上面提到的主机名匹配。如果您使用多个git安装或没有git安装的访问权限(由于缺少管理员权限),这可能是更好的解决方案。cetgtptt3#
我也遇到过同样的问题,我在github账户中为intelliJ生成了公钥。
设置-〉开发人员设置-〉个人访问令牌
然后通过提供必要的范围和描述为intelliJ生成新令牌,并复制令牌密钥。
之后,在intelliJ中选择Login via token access。通过将密钥粘贴到显示的表单中进行登录。
谢谢你
ubof19bj4#
我正在使用Windows 10和PuTTY身份验证代理(带密码保护的SSH密钥),这对我很有效--适用于我上传SSH密钥的Bitbucket和Github帐户。
在Intellij中集成“SSH”密钥的步骤-
1.打开“PuTTYgen”应用程序。
1.点击“文件〉加载私钥”。
1.从目录中选择.ppk文件。
1.点击“转换〉导出OpenSSH密钥”。
1.使用“id_rsa”名称将文件保存在“C:\Users\(您的用户名).ssh”文件夹中。
1.开启Intellij。
1.点击“文件〉设置”。
1.展开“版本控制”。
1.展开“Subversion”。
1.点击“SSH”。
1.选择“私钥”单选按钮。
1.选择存储在“C:\Users\(您的用户名).ssh”文件夹中的生成文件。
1.点击“确定”按钮。
测试配置:单击“VCS〉Git〉Fetch”。如果显示“Fetch Successful”消息,则配置成功
来源:https://intellij-support.jetbrains.com/hc/en-us/community/posts/360000011270-How-to-set-up-git-SSH-keys-?page=1#community_comment_360001445600
jpfvwuh45#
这个问题太宽泛了。需要更多的细节来澄清。
运行
git remote show -n origin
(假设您在分支origin
上。-n
标志表示“不查询远程”,这可以减少Web请求的操作时间。),您可能会看到远程URL。在许多常见的情况下,例如在GitHub上,Git URL使用HTTPS协议
或SSH协议
如果字段
user
不是您或您的组织之一,那么您似乎在尝试向某人的存储库投稿。请使用fork和create a pull request来完成此操作。您可能需要使用命令更改本地存储库的远程url如果
user
是您,则检查您是否正确输入了令牌。ssh -T git@github.com
测试连接。**更新1:**你的问题中似乎有一个错字,
git@github.com:**/**username/repository_name
。注意第一个斜杠。我不确定它是否有问题。更新2:检查您的Git凭据保存在IntelliJ IDEA中在
File -> Settings -> Version Control -> GitHub
中**更新3:**您也可以将其共享到GitLab,只需添加一个远程,例如运行命令
git remote add gitlab <url>
。dojqjjoe6#
我遇到过一个类似的问题,我无法用SSH git拉取更改,通过在Intellij中添加SSH配置解决了这个问题。
操作步骤:
我希望这能帮助到一些人
nfg76nw07#
我可以分享关于WebStorm的类似情况和答案。
我以前存储了一个不同的
SSH
密钥的密码,我添加了一个新的密钥(如果在Mac上,不要忘记ssh-agent -s
),但WebStorm没有发现它。WebStorm中没有为即将出现的错误消息提供上下文,遗憾的是,它是
git
中的通用错误消息:正如JetBrains的IntelliJ跟踪器和/或论坛上的several、several和issues中所提到和链接的(它们引导我来到这里),WebStorm(我认为IntelliJ也是如此)* 在幕后使用SSH配置点文件 *。这意味着使用本地
ssh
客户端(在以前的版本中,Settings » Version Control » git » SSH Executable to "native"
)或使用配置(Settings » Tools » SSH Configuration
s)因此,创建或编辑您的
SSH
config
(例如Mac:~/.ssh/config
)以包括例如然后,将使WebStorm在
git
remote
的domain
上拾取,并提示您输入已配置SSH密钥/SSH配置项的密码。(请记住替换上面标有
<placeholder>
的占位符)。jexiocij8#
我通过运行cat ~/.ssh/id_rsa.pub命令解决了这个问题,复制了结果,并在Github/settings/ssh和gpg keys中添加了“new ssh key”,并将结果粘贴到那里并保存然后再次运行“git push -u origin main”,它就成功了。