我发现了很多关于如何使用msysgit和putty / plink在ssh上设置git的线程,但是rubymine似乎使用了自己的git和ssh实现(参见下面的错误消息)。
目前我已经安装了putty,msysgit,TortoiseGit和rubymine。我的存储库有两个遥控器:
[remote "origin"]
url = ssh://mygituser@255.255.255.255:1234/path/to/repo.git
[remote "origin_putty"]
url = putty-alias:path/to/repo.git
puttykeyfile = path/to/my/putty/keyfile.ppk
在putty中,连接“putty-alias”是使用origin
中使用的相同用户,主机和端口定义的,并且还会再次设置ssh密钥(可能不是必需的)。使用TortoiseGit推送到origin_putty
工作正常,因为它加载了putty ssh密钥并提示我的密码短语。但是,当我尝试使用来自rubymine的origin
时,它会提示输入mygituser
的密码,因为没有定义密钥文件。
我已经尝试过以下解决方案
puttykeyfile
定义中的origin
行(无更改)origin_putty
(无法解析putty-alias
)我认为rubymine使用自己的ssh实现的原因是我在不成功的身份验证上得到的错误消息: SSH:身份验证方法:[publickey,keyboard-interactive,password]上次成功的方法:
java.io.IOException: Authentication failed:
at org.jetbrains.git4idea.ssh.SSHMain.authenticate(SSHMain.java:280)
at org.jetbrains.git4idea.ssh.SSHMain.start(SSHMain.java:155)
at org.jetbrains.git4idea.ssh.SSHMain.main(SSHMain.java:135)
fatal: The remote end hung up unexpectedly
答案 0 :(得分:3)
你是对的:默认情况下,RubyMine使用trilead-ssh2 Java库,并且不知道Putty设置。
您可以在“设置”中切换到使用本机SSH版本控制| Git | SSH可执行文件|本地人 但请注意,它与密码短语不兼容,因此如果您的私钥受密码保护,则必须使用选美或类似软件。