几个星期以来,我无法从远程存储库中拉出或推送.我认为升级到IntelliJ IDEA 14时会发生这种情况,但我也可以使用IDEA 13.1.5重现问题.
工具提示说"Fetch failed fatal:无法从远程存储库读取."
和版本控制选项卡中的异常读取
14:02:37.737: cd C:\dev\project 14:02:37.737: git -c core.quotepath=false fetch origin --progress --prune java.io.IOException: Padding in RSA public key! at com.trilead.ssh2.signature.RSASHA1Verify.decodeSSHRSAPublicKey(RSASHA1Verify.java:37) at com.trilead.ssh2.KnownHosts.addHostkey(KnownHosts.java:98) at com.trilead.ssh2.KnownHosts.initialize(KnownHosts.java:414) at com.trilead.ssh2.KnownHosts.initialize(KnownHosts.java:440) at com.trilead.ssh2.KnownHosts.addHostkeys(KnownHosts.java:137) at org.jetbrains.git4idea.ssh.SSHMain.configureKnownHosts(SSHMain.java:462) at org.jetbrains.git4idea.ssh.SSHMain.start(SSHMain.java:155) at org.jetbrains.git4idea.ssh.SSHMain.main(SSHMain.java:137) fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists.
使用IntelliJ的内置终端执行git -c core.quotepath=false fetch origin --progress --prune
,它可以正常工作.
根据堆栈跟踪,我似乎有问题KnownHosts
,所以我删除了我们的git服务器~/.ssh/known_hosts
,希望IntelliJ再次插入它.但是当通过UI更新时仍然会出现问题,并且没有写入新条目known_hosts
; 考虑一些缓存文件,我重新启动IntelliJ,但没有成功.
当git fetch
从终端做另一个时,现在我被问到是否要永久添加服务器.之后,它又被写入known_hosts
了,但IntelliJ仍然不允许我更新我的项目.
我还没有在网上找到任何有关此行为的信息,所以我猜这不是新IntelliJ版本的已知错误.不过,我更新到14.0.2,但问题仍然存在.
IntelliJ配置为使用内置的SSH可执行文件.
有没有人知道这里可能出现什么问题?
转到首选项>版本控制> Git.确保SSH可执行文件设置为"Native."(如果已经是,请将其切换为"Built-in",应用它,然后再次切换回"Native.").
如果这不能解决您的问题,我建议下载一个Git客户端,如GitHub客户端(免费桌面应用程序),并尝试通过该应用程序同步您的项目.然后返回IntelliJ并检查它是否有效.
我Could not read from remote repository
最近在使用我的github存储库时开始收到错误.我的规格:
IntelliJ IDEA 2017.3.4(终极版)
设置 - >版本控制 - > Git - > SSH可执行文件 - >内置
Fedora Linux
当然,这些问题仅在尝试从IDE中推/拉/取等时发生 - 从命令行执行相同的命令就像魅力一样.
我不想从Built-In
SSH可执行文件切换到Native
,主要是因为我的本机SSH客户端在我尝试与远程存储库同步时会要求我输入密码.
我通过从SSH远程URL切换到HTTPS URL解决了这个问题.根据此GitHub帮助页面 - 建议使用HTTPS URL而不是SSH URL.
SSH
为HTTPS
在IntelliJ IDEA中,转到VCS - > Git - > Remotes ...,选择包含"origin"的行,然后单击"编辑"按钮.如果您在GitHub上托管您的存储库,请将您的SSH URL替换为:
git@github.com:USERNAME/REPOSITORY.git
至:
https://github.com/USERNAME/REPOSITORY.git
您还可以从GitHub存储库主页获取HTTPS URL - 单击"克隆或下载"按钮,然后单击"使用HTTPS"链接以显示存储库的HTTPS URL:
JetBrains刚刚发布了IntelliJ IDEA 2017.3.5,其中包括对GitHub的SSH访问修复 - https://blog.jetbrains.com/idea/2018/03/intellij-idea-2017-3-5-fix-for-ssh-access -to-github上/
在pyCharm中,
file| v-->settings| v-->Version Control| v-->Git
这里改变SSH executable
从Built-in
成Native
然后按apply
和close
IntelliJ的内置SSH客户端似乎哈希known_hosts
,但是我的主机名是明文.
当我删除文件并让IntelliJ创建一个新文件时,只有我的(散列)GitLab服务器,没有其他任何东西,它工作.
它也不可能混合使用 - 保留一些未散列的条目以及IntelliJ的散列条目.因此,您必须配置其他SSH客户端以使用散列主机.
Settings --> Version Control --> Git
,然后,在SSH可执行文件下拉列表中,选择 Native
如果这没有帮助,请确保您的本机ssh
和git
客户端版本足够新.
@yabin ya所说的是一个很酷的解决方案,只是提醒你:如果你仍然遇到同样的问题,请转到Settings-Version Control-GitHub并取消选中Clone git repositories using ssh
.
我通过重新添加远程存储库解决了这个问题:VCS - > Git - > Remotes.
转到设置 - > Git->在SSH可执行文件下拉列表中选择本机.(如果未选中)
从Github存储库复制HTTPS链接.
转到VCS-> Git-> Remotes ..
在URL字段中编辑原点和粘贴HTTPS链接.
按下Ctrl+Shift+k
并将项目推送到存储库.有用.
您需要生成一个新的SSH密钥并将其添加到您的ssh-agent.为此你应该按照这个链接.
创建公钥并将其添加到您的github帐户后,您应该在Intellij Idea中的设置 - >版本控制 - > Git - > SSH可执行文件下使用内置(非本机)选项.