几周以来,我无法从远程存储库中拉取或推送。我认为升级到 IntelliJ IDEA 14 时会发生这种情况,但我也可以使用 IDEA 13.1.5 重现该问题。
工具提示显示“Fetch failed fatal: could not read from remote repository。”
并且版本控制选项卡中的异常显示为
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
似乎有问题,所以我从 ~/.ssh/known_hosts
中删除了我们的 git 服务器,希望 IntelliJ 重新插入它。但是通过UI更新时问题依旧出现,并且known_hosts
中没有写入新条目;考虑到文件的一些缓存,我重新启动了 IntelliJ,但没有成功。
从终端执行另一个 git fetch
时,现在有人询问我是否要永久添加服务器。之后,它已再次写入 known_hosts
,但 IntelliJ 仍然不允许我更新我的项目。
我在网上没有找到任何关于这种行为的信息,所以我猜这不是新 IntelliJ 版本的已知错误。尽管如此,我更新到14.0.2,但问题仍然存在。
IntelliJ 配置为使用内置的 SSH 可执行文件。
有人知道这里可能是什么问题吗?
puttygen
和 Git GUI
,因为这也是我的第一个想法。你确定是关于我的密钥对吗?例外似乎与已知主机有关:code.google.com/p/connectbot/source/browse/src/com/trilead/ssh2/…
Settings --> Version Control --> Git
,然后在 SSH 可执行文件下拉列表中选择 Native
https://i.stack.imgur.com/sdTcZ.png
如果这没有帮助,请确保您的本地 ssh
和 git
客户端是足够新的版本。
转到首选项 > 版本控制 > Git。确保 SSH 可执行文件设置为“本机”。 (如果已经如此,请将其切换到“内置”,应用它,然后再次切换回“本机”。)。
如果这不能解决您的问题,我建议下载一个 Git 客户端,例如 GitHub 客户端(免费桌面应用程序)并尝试通过该应用程序同步您的项目。然后回到 IntelliJ 并检查它是否有效。
SSH executable
对我有用。我也已经在 Native
上了。
我最近在使用我的 github 存储库时开始收到 Could not read from remote repository
错误。我的规格:
IntelliJ IDEA 2017.3.4(终极版)
设置 -> 版本控制 -> Git -> SSH 可执行文件 -> 内置
Fedora Linux
https://i.stack.imgur.com/oXlnQ.png
当然,这些问题仅在尝试从 IDE 推送/拉取/获取等时发生 - 从命令行执行相同的命令就像一个魅力。
对我有用的解决方案
我不想从 Built-In
SSH 可执行文件切换到 Native
,主要是因为每当我尝试与远程存储库同步时,我的本地 SSH 客户端都会要求我输入密码。
我通过从 SSH 远程 URL 切换到 HTTPS URL 解决了这个问题。根据此 GitHub 帮助页面 - it is recommended to use HTTPS URL instead of SSH one。
将远程 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:
https://i.stack.imgur.com/VMZVz.png
更新 2018-03-13
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/
IntelliJ 的内置 SSH 客户端似乎是 hash its known_hosts
,但我有它的主机名是明文的。
当我删除文件并让 IntelliJ 创建一个新文件时,只有我的(散列的)GitLab 服务器,没有其他东西,它起作用了。
也不能混合使用 - 将一些未散列的条目与 IntelliJ 的散列条目保留在一起。因此,您必须配置其他 SSH 客户端 to use hashed hosts。
在 SSH 可执行文件下拉菜单中转到 Settings->Git->Select Native。 (如果未选中)从您的 Github 存储库复制 HTTPS 链接。转到 VCS->Git->Remotes.. 编辑源并在 URL 字段中粘贴 HTTPS 链接。按 Ctrl+Shift+k 并将项目推送到存储库。有用。
对我来说,解决方案是:Settings
˃ Version Control
˃ Git
˃ Use Credential helper
https://i.stack.imgur.com/Q65Qc.png
在 pyCharm 中,
file|
v-->settings|
v-->Version Control|
v-->Git
这里将 SSH executable
从 Built-in
更改为 Native
然后按 apply
和 close
我通过重新添加远程存储库解决了这个问题:VCS -> Git -> Remotes。
@yabin ya 说的是一个很酷的解决方案,只是提醒您:如果您仍然遇到同样的问题,请转到 Settings-Version Control-GitHub 并取消选中 Clone git repositories using ssh
。
您需要生成一个新的 SSH 密钥并将其添加到您的 ssh-agent。为此,您应该遵循此 link。
创建公钥并将其添加到您的 github 帐户后,您应该在 Intellij Idea 中使用 Setting-> Version Control -> Git -> SSH executable 下的 Built-in (not Native) 选项。
Native
解决了问题,在 Mac 上
我们最近从 IntelliJ 12 更新到 IntelliJ 14 Ultimate,我们也遇到了这个问题。我们的解决方案是在设置中禁用代理。我们也曾经停止记住密码,但可能不确定这是否有帮助。代理设置在文件-设置-外观和行为-系统设置-HTTP 代理下。
这帮助我解决了当前问题
如果您使用的是 macOS Sierra 10.12.2 或更高版本,则需要修改 ~/.ssh/config 文件以自动将密钥加载到 ssh-agent 中并将密码短语存储在您的钥匙串中。
Host *
AddKeysToAgent yes
UseKeychain yes
IdentityFile ~/.ssh/id_rsa
我通过删除 PuTTY 中 ssh 密钥的密码解决了这个问题。
我通过在命令中将我的 SSH 私钥添加到 ssh-agent 解决了这个问题:
$ ssh-add -K ~/.ssh/id_rsa
并设置 Settings --> Version Control --> Git
,然后在 SSH 可执行文件下拉菜单中选择 Native
不是解决方案/解决方法,但也许可以回答“可能是什么问题”这个问题:
Gitlab 和“内置 ssh 库的 jetbrains”不能很好地协同工作。该库希望使用基于 SHA1 的密钥交换算法,而 gitlab(默认)仅允许基于 SHA2 的密钥交换算法。
至少报告了 TeamCity (https://youtrack.jetbrains.com/issue/TW-47704)。
事实上,它也可能是 IntelliJ 中拉/推问题的原因,而且我在 PhpStorm 中的推问题是基于假设 jetbrains 对其所有软件使用相同的“内置库”。
我从一些在线课程的叉子上遇到了这个问题。我克隆了我的叉子并遇到了权限错误。我不明白为什么它坚持我是我另一家公司的用户。但正如前面的评论者提到的,我检查了 Clone git repositories using ssh
设置,我忘记向我的新帐户添加 ssh 密钥。所以我做了,然后仍然无法推动,因为我遇到了这个错误。我解决它的方法是使用 Github Desktop 客户端推送。
要点:
当您打开一个新的 GitHub 帐户时,请确保为其添加一个 ssh 密钥 为不同的帐户使用不同的 ssh 密钥 一般来说,对于每个项目,我在 IntelliJ 上至少遇到一次或两次 GitHub 问题。确保您拥有 GitHub 桌面的副本并将您的项目加载到其中。它可以并且将帮助您解决您在使用 Intellij 时可能遇到的许多问题——不仅仅是这个问题。它实际上是一个非常好的 GUI 客户端并且是免费的!执行@yabin 的建议并在 Mac 上使用本机客户端可能是有意义的
在我的情况下唯一有帮助的(切换 SSH-executabe 不起作用)是停用 git 和 git-flow 插件,重新启动 intellij 并再次重新激活这些插件......
不要忘记联系您的系统管理员。
因为在我的情况下,我已经正确配置了所有东西(还添加了 SSH)但我得到了同样的错误
存储库访问被拒绝。致命:无法从远程存储库中读取。
原因是我只有对该存储库的读取权限。因此,在不浪费您宝贵时间的情况下,请先检查一下。谢谢你。
java.io.IOException: Padding in RSA public key!
?这很有趣,并且可能表明 IntelliJ 的 SSH 处理中存在错误。
如果一切都失败了,只需转到您的终端并从您的文件夹中输入:
git push origin master
这就是众神原本想要的样子。
我最近(2018 年 2 月)遇到了 WebStorm 的这个问题,并且(当时)以前的解决方案都没有对我有用。在花了几个小时进行故障排除和研究后,我安装了 2018 EAP 版本,现在它可以工作了!
一个新的 issue 于 2017 年 12 月 报道了 IntelliJ Idea >在版本 181.2445(或 2018 年 1 月 31 日之后的任何最新版本)中修复的 VCS/Git 子系统。
另请参阅帖子 Update-ssh-key-to-use-new-passphrase
这个问题在我的电脑上解决了。 settings-->Version Control-->Git ,然后,在 SSH executable 下拉菜单中,选择 built-in 选项。
并安装 git 旧版本,例如 2.14.2。它的效果很好!
如果您尝试连接到 github 或 bitbucket 等云服务,请检查 Idea 代理设置。这可以通过查找要安装的插件或在 help
菜单中检查软件更新来完成。如果互联网/代理设置不正确,请添加有效条目或将其设置为 auto
这在 MacOS High Sierra (10.13.5)/IntelliJ IDEA 2018.4 上为我修复了它(我使用的是 SSH,而不是 HTTPS,以及本机 git,而不是内置的):
https://i.stack.imgur.com/HZKTP.png
我通过确保我有正确的 git SSH url 没有任何尾随空格来解决这个问题:
git@github.com:USERNAME/REPOSITORY.git
添加这个答案,因为没有一个答案对我有用。
我有证书问题 - 所以下面的命令就可以了。
git config --global http.sslVerify false
我尝试了上述所有解决方案(本机、更改 VCS 存储库的 url、更新 Git、更新 IDEA、使缓存无效),但没有任何帮助。最后我找到了适合我的解决方案。
解决方案:我关闭了 Idea 并将文件 ~\.IntelliJIdea20xx.x\config\options\git.xml
的内容替换为:
<application>
<component name="Git.Application.Settings">
<option name="SSH_EXECUTABLE" value="IDEA_SSH" />
</component>
</application>
然后我启动了 IDEA,尝试检查 SSH GIT 存储库,它可以正常工作,现有项目也可以正常工作。有趣的事实是,当我在 Idea Settings 中切换到 NATIVE 时,存储库无法正常工作。
我有同样的问题。正在使用 bitbucket 并且在拉取/更新 Intellij 上的存储库时遇到了麻烦。尝试更改为原生并返回内置,但它不起作用。然后意识到我已经使用密码生成了 ssh 密钥。
我在没有密码的情况下重新生成了密钥,然后将其添加到了 bitbucket。有效 !
我尝试了 Native
选项但对我不起作用,最后以旧方式重新生成 ssh 密钥并在 ssh-keygen
命令中添加 -m
选项。 IDEA 也可以与 build-in
选项一起使用。
ssh-keygen -m PEM -t rsa -b 4096 -C "email@..."
我更改了 git 路径并且它有效。
https://i.stack.imgur.com/Z8S8o.png
我在 macOS (Version Chipmunk|2021.2.1)
上使用最新的 Android Studio 版本时遇到了同样的问题。所以我没有将 Intellij (Android studio) 用于克隆项目。我通过以下命令执行此操作 -
git clone https://YOUR_GIT_DEVELOPER_KEY_FROM_CONSOLE@YOUR_GIT_URL
假设这是您的 repo,那么它将是这样的
git clone https://3didfe32434jndYnjs@github.com/Gkemon/Android-XML-to-PDF-Generator.git