使用ssh身份验证的IntelliJ设置存储库

Hil*_*kus 5 github intellij-idea

我正在尝试使用Intellij 2017.1中的`` 设置存储库''功能,但我想使用ssh url作为存储库而不是https。我不喜欢处理那些首次创建后无法复制的个人访问令牌。所以我试图使用ssh,但是当我单击“覆盖本地”时,出现以下错误

设置上游存储库失败:只读文件系统

我是否被迫使用https或是否可以将其配置为与ssh一起使用?我的ssh密钥在终端中可以正常运行,并且在正常位置~/.ssh

mix*_*xel 15

此答案可能无法解决您的问题,但我仍会添加它,因为此页面是 Google 通过“intellij 设置存储库身份验证失败”请求的第一个结果。

添加设置存储库时,我遇到了“身份验证失败”错误的问题。升级到 macOS Mojave 10.14.1 后,我遇到了它,它提供了新版本的 ssh-keygen 二进制文件。

原因是我用ssh-keygen -t rsa -C "Michael Ledin" -b 4096命令生成了一个新的 ssh 密钥。

检查您的私人 SSH 密钥(通常为~/.ssh/id_rsa)。如果它以

-----BEGIN OPENSSH PRIVATE KEY-----
Run Code Online (Sandbox Code Playgroud)

然后它具有新的 RFC4716 密钥格式,目前基于 IntelliJ 的 IDE 使用的 JGit 不支持该格式。

要解决此问题,您可以:

  1. 要么以旧的“PEM”格式生成新密钥,添加-m "PEM"选项:

    ssh-keygen -t rsa -C "Michael Ledin" -b 4096 -m "PEM"
    
    Run Code Online (Sandbox Code Playgroud)
  2. 或者,如果您已经将您的公钥添加到 ssh 远程和存储库,并且很难在任何地方用新密钥替换它,那么您有两个选项可以将其转换为旧的 PEM 格式:

    a) with ssh-keygen(它会要求输入一个新密码——使用旧密码或将其留空):

    ssh-keygen -p -m PEM -f ~/.ssh/id_rsa
    
    Run Code Online (Sandbox Code Playgroud)

    b) 与 putty

    1. 首先安装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     
      
      Run Code Online (Sandbox Code Playgroud)
    2. 接下来将 SSH2 密钥转换为 PEM:

      ssh-keygen -i -f ~/.ssh/id_ssh2 > ~/.ssh/id_rsa
      rm ~/.ssh/id_ssh2
      
      Run Code Online (Sandbox Code Playgroud)
    3. 现在您拥有~/.ssh/id_rsa旧 PEM 格式的私钥,可以由基于 IntelliJ 的 IDE 使用;原始密钥存储在~/.ssh/id_openssh文件中,可以删除:

       rm ~/.ssh/id_openssh
      
      Run Code Online (Sandbox Code Playgroud)

用于创建此答案的链接:

将 OpenSSH 私钥转换为 RSA PEM

ssh-keygen 不创建 RSA 私钥


too*_*ear 5

不,并且不适用于某些SSH设置

ssh的“设置存储库”支持仅限于Java jgit实现。尽管您可以配置新项目和现有项目以使用OS本机ssh,但是“设置存储库”功能会忽略此首选项。

因此,任何阻止它与SSH设置一起使用的jgit限制都将阻止“设置存储库”功能无法解决。

设置存储库是基于JGit的单独功能,它与Version控件-Git不相关,这就是为什么在那里更改设置无效的原因。

设置存储库没有本机SSH模式,也无法从ssh-agent中受益。

Dmitriy Smirnov(JetBrains)— 设置存储库功能始终要求输入SSH密钥密码,即使该密钥已在我的SSH代理中

当我尝试覆盖设置存储库中的本地设置时遇到问题时,我下载并正在新计算机上设置IntelliJ。设置存储库内部如何使用Git似乎是一个问题。以下是尝试将设置存储库功能以及克隆存储库内置 SSH 和本 SSH 结合使用的示例。我不确定现在如何使其正常工作。

Vladimir Krivosheev- 设置存储库-添加本机SSH模式(IDEA-173223)


Dmi*_*nov 3

设置存储库确实可以使用 SSH 密钥。

确保正确指定 URL,如git@github.com:username/Repo.git 如果您的 ssh 密钥不是名为 id_rsa/id_rsa.pub,请确保在.ssh/config

此外,由于某些原因 IDE 无法覆盖本地配置文件,也可能会发生该错误。检查IDE 日志是否有任何相关错误。