我正在尝试使用Intellij 2017.1中的设置存储库功能,但我想使用ssh网址代替https而不是https。我不喜欢处理那些第一次创建后你无法复制的个人访问令牌。所以我正在尝试使用ssh但是当我点击“覆盖本地”时,我收到以下错误
无法设置上游存储库:只读文件系统
我是否被迫使用https或者有办法将其配置为使用ssh?我的ssh键在终端中工作正常,它位于正常位置ruby -v
ruby 2.3.3p222 (2016-11-21 revision 56859) [x64-mingw32]
答案 0 :(得分:3)
对ssh的“设置存储库”支持仅限于Java jgit实现。可以将新项目和现有项目配置为使用OS本机ssh,但是“设置存储库”功能会忽略此首选项。
因此,任何阻止它与SSH设置一起使用的jgit限制都将阻止“设置存储库”功能无法正常使用。
设置存储库是基于JGit的单独功能,它与Version控件-Git无关,这就是为什么在那里更改设置无效的原因。
设置存储库没有本机SSH模式,也无法从ssh-agent中受益。
Dmitriy Smirnov(JetBrains)— Settings Repository feature always asks for SSH key password even though key is in my SSH agent already
我下载并正在尝试在设置库中覆盖本地设置时遇到问题时,正在新计算机上设置IntelliJ。设置存储库内部如何使用Git似乎是一个问题。以下是尝试使用设置存储库功能以及克隆存储库和内置和本地的示例SSH。我不确定现在如何使其正常工作。
弗拉基米尔·克里沃舍夫— Settings repository - add Native SSH mode (IDEA-173223)
答案 1 :(得分:1)
设置存储库可以使用SSH密钥。
确保您正确指定了网址,git@github.com:username/Repo.git
如果您的ssh密钥未被称为id_rsa / id_rsa.pub,请确保在.ssh/config
此外,可能会发生错误,因为某些原因IDE无法覆盖本地配置文件。检查IDE logs是否有任何相关错误。
答案 2 :(得分:1)
此答案可能无法解决您的问题,但我仍会添加它,因为此页面是Google的“ intellij设置存储库身份验证失败”请求的第一个结果。
添加设置存储库时出现“验证失败”错误的问题。升级到提供新版本的ssh-keygen二进制文件的macOS Mojave 10.14.1之后,我遇到了这个问题。
原因是我用ssh-keygen -t rsa -C "Michael Ledin" -b 4096
命令生成的新的ssh密钥。
检查您的私密SSH密钥(通常为~/.ssh/id_rsa
)。如果以
-----BEGIN OPENSSH PRIVATE KEY-----
然后具有新的RFC4716密钥格式,基于IntelliJ的IDE使用的JGit当前不支持该格式。
要解决此问题,您可以:
以旧的“ PEM”格式生成新密钥,并添加-m "PEM"
选项:
ssh-keygen -t rsa -C "Michael Ledin" -b 4096 -m "PEM"
,或者如果您已经将公用密钥添加到ssh远程控制和存储库中,并且很难在任何地方用新密钥替换它,那么您必须将其转换为旧的PEM格式:
1)ssh-keygen
没有提供将私钥从新格式转换为旧格式的方法;
2),因此首先安装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
3)接下来将SSH2密钥转换为PEM:
ssh-keygen -i -f ~/.ssh/id_ssh2 > ~/.ssh/id_rsa
rm ~/.ssh/id_ssh2
4)现在,您已经拥有旧PEM格式的私钥~/.ssh/id_rsa
,可以供基于IntelliJ的IDE使用;原始密钥存储在~/.ssh/id_openssh
文件中,可以将其删除:
rm ~/.ssh/id_openssh
用于创建此答案的链接: