关于git:如何在IntelliJ IDEA中存储SSH主机密钥

How to store SSH host key in IntelliJ IDEA

当使用SSH作为IDEA的git集成的连接时,IDEA一直要求将主机的rsa签名存储在主机密钥数据库中。 按是可以,但不会将密钥存储在数据库中,下次使用连接时,IDEA会出现相同的问题。 按否会使连接失败。

我似乎找不到IDEA的SSH连接的任何配置,谷歌也没有提供任何有用的结果...关于如何摆脱密钥库对话的任何想法?

使用:

Windows XP上具有JDK 1.6.0_22的IntelliJ IDEA 10.5.1

MySysGit 1.7.6及其在%PATH%中的bin /和mingw / bin文件夹

" git.exe"作为IDEA中的git可执行文件

" IDEA ssh"作为IDEA中的SSH可执行文件

服务器端上的openssh-server 1:5.5p1-6(Debian Squeeze)


我在Win7上的IDEA 13遇到了同样的问题,可以通过在Git设置页面中切换到"本机" SSH可执行文件来解决。我按照接受的答案建议以管理员身份运行Intellij时做到了这一点,但是接受的答案直到我更改了SSH可执行文件后才解决了问题。


我在IDEA 13和14中遇到了相同的问题。默认情况下,IDEA将尝试在%HOME%目录中创建/访问.ssh/known_hosts文件。

但是,我的系统(Windows 7 Enterprise x64)上未定义%HOME%。 IDEA不会存储密钥;相反,它会在每次操作时都要求它。

当我定义%HOME%(在我的情况下为%HOME% = %HOMEDRIVE%)时,所有内容均按公告的方式工作。

这是IDEA中已确认的错误;它应该搜索:

  • %家%
  • %HOMEDRIVE%
  • %HOMEPATH%
  • %用户资料%

还要检查此问题。


Windows似乎没有让IDEA像您期望的那样轻松地更改您的个人设置。确保可以保存主机签名可解决此问题。要使IDEA做到这一点,请在Vista / Win7上以管理员身份运行IDEA或在XP的"运行方式"对话框中仅取消一次"保护我的计算机免受未经授权的程序活动"。建立SSH连接并保存签名后,此操作可以解决烦人的对话框。保存签名后,IDEA甚至接受以致命用户身份运行的主机。


我也有mSysGit,并将"C:\\Program Files (x86)\\Git\\bin"放在PATH上。

将IntelliJ与mSysGit和带有私钥/公钥的ssh协议一起使用时,至少存在两个问题:

IntelliJ不知道如何显示有关"无法建立主机的真实性……的消息",因此是的,它有助于手动运行git命令一次以更新.ssh/known_hosts文件。

直接在" Git Bash"外部启动的mSysGit不会"知道"您的主目录在哪里,而是用作.ssh文件夹"C:\\Program Files\\Git\\.ssh"

我想知道设置一个指向用户Windows主目录的HOME环境变量是否有帮助。更令人困惑的是,不同的工具对主目录的存放位置有不同的看法。

  • Cygwin认为我的主目录位于C:\\Users\\myself\\AppData\
    oaming
    下。
  • Java应用程序认为我的主目录位于C:\\Users\\myself
  • 我的网络主目录驱动器在公司网络上为H:\,某些工具认为我的真实主目录为H:\\

您是否尝试过将ssh命令行输入服务器,然后接受主机密钥?那应该存储它,因为它不会经历某些Java / JNI / Windows扭曲。


简单的解决方案
在IDE中
工具->部署->选项
向下滚动
SFTP高级选项(IDE级别设置)

将添加新的主机密钥更改为always_known主机

Change deployment settings


我不确定100%是否与您的问题有关,但是jetbrains的文档中有一个页面介绍如何为git设置ssh密钥:
using-git-integration.html

我在Mac上运行IDEA,并在标准的Unix?/ .ssh中安装了ssh密钥,但从未收到有关密钥存储的任何问题。
在Windows上,您可能应该将ssh密钥放在C:\ Documents and settings \ username.ssh下

排除vcs问题时,也可以在思想上查看版本控制选项卡,以获取更多特定消息。


打开终端并在给定的命令下运行,SSH密钥问题将得到解决。

1
git config --global http.sslVerify false