我正在尝试使用设置存储库Intellij 2017.1 中的功能,但我想使用 ssh url 作为存储库而不是 https。我不喜欢处理那些在第一次创建后无法复制的个人访问令牌。所以我尝试使用 ssh 但当我单击“覆盖本地”时,出现以下错误
无法设置上游存储库:只读文件系统
我是否被迫使用 https 或者有办法将其配置为与 ssh 一起使用?我的 ssh 密钥在终端中可以正常推送,并且位于正常位置~/.ssh
这个答案可能无法解决您的问题,但我仍然会添加它,因为此页面是 Google 中“intellij 设置存储库身份验证失败”请求的第一个结果。
添加设置存储库时出现“身份验证失败”错误的问题。我在升级到 macOS Mojave 10.14.1 后遇到了这个问题,它提供了新版本的 ssh-keygen 二进制文件。
原因是我生成了一个新的 ssh 密钥ssh-keygen -t rsa -C "Michael Ledin" -b 4096
命令。
检查您的 SSH 私钥(通常~/.ssh/id_rsa
)。如果它开始于
-----BEGIN OPENSSH PRIVATE KEY-----
然后它具有新的 RFC4716 密钥格式,目前基于 IntelliJ 的 IDE 使用的 JGit 不支持该格式。
要解决此问题,您可以:
-
要么以旧的“PEM”格式生成新密钥,然后添加-m "PEM"
option:
ssh-keygen -t rsa -C "Michael Ledin" -b 4096 -m "PEM"
-
或者,如果您已经将公钥添加到 ssh 远程和存储库,并且很难在任何地方用新密钥替换它,那么您有两种选择将其转换为旧的 PEM 格式:
a) with ssh-keygen
(它会要求输入新密码 - 使用旧密码或将其留空):
ssh-keygen -p -m PEM -f ~/.ssh/id_rsa
b) with putty
-
第一次安装putty
并将私钥转换为 SSH2 格式(我假设您当前的密钥存储在~/.ssh/id_rsa
):
brew install putty
mv ~/.ssh/id_rsa ~/.ssh/id_openssh
puttygen ~/.ssh/id_openssh -O private-sshcom -o ~/.ssh/id_ssh2
-
接下来将 SSH2 密钥转换为 PEM:
ssh-keygen -i -f ~/.ssh/id_ssh2 > ~/.ssh/id_rsa
rm ~/.ssh/id_ssh2
-
现在你有了你的私钥~/.ssh/id_rsa
采用旧的 PEM 格式,可供基于 IntelliJ 的 IDE 使用;原始密钥存储在~/.ssh/id_openssh
文件并可以删除:
rm ~/.ssh/id_openssh
用于创建此答案的链接:
将 OpenSSH 私钥转换为 RSA PEM https://federicofr.wordpress.com/2019/01/02/how-to-convert-openssh-private-keys-to-rsa-pem/
ssh-keygen 不创建 RSA 私钥 https://serverfault.com/a/941893/122228
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)