2017-03-04 198 views
2

我的新Web服務器需要使用RSA 2048密鑰進行身份驗證。JetBrains(IntelliJ,PhpStorm,WebStorm ...)使用SSH密鑰的私人git存儲庫

因此,我生成了一個密鑰,我將ir_rsaid_rsa.pub文件放在我的主文件夾~/.ssh(Windows 10)中。

但是當我使用CVS的註釋(拉或推),我得到一個錯誤:

enter image description here

錯誤日誌(帶有內置SSH可執行文件):

15:14:14.657:[MyProject] git -c core.quotepath = false獲取原點 --progress --prune java.io.IOException:連接到mywebhost.fr:22在 com時出現問題。 trilead.ssh2.Conn ection.connect(Connection.java:791)at com.trilead.ssh2.Connection.connect(Connection.java:577)at org.jetbrains.git4idea.ssh.SSHMain.start(SSHMain.java:171)at org.jetbrains.git4idea.ssh.SSHMain.main(SSHMain.java:137)導致: java.io.IOException:密鑰交換未完成,連接已關閉 。在 com.trilead.ssh2.transport.KexManager.getOrWaitForConnectionInfo(KexManager.java:92) 在 com.trilead.ssh2.transport.TransportManager.getConnectionInfo(TransportManager.java:230) 在com.trilead.ssh2.Connection .connect(Connection.java:743)... 3更多 引起:java.io.IOException:無法協商,提議不匹配 。在 com.trilead.ssh2.transport.KexManager.handleMessage(KexManager.java:413) 在 com.trilead.ssh2.transport.TransportManager.receiveLoop(TransportManager.java:754) 在 com.trilead.ssh2。 transport.TransportManager $ 1.run(TransportManager.java:469) at java.lang.Thread.run(Thread.java:745)致命錯誤:無法從 讀取遠程存儲庫。請確保您擁有正確的訪問權限 並存在存儲庫。

錯誤日誌(用 「設置>版本控制>的git> SSH可執行」 到 「本地」):

15:13:50.031:[MyProject的]的git -c芯.quotepath = false獲取原點 --progress --prune權限被拒絕(publickey)。致命:無法從遠程存儲庫讀取。請確保您擁有正確的 訪問權限並存在存儲庫。

如果我使用終端的Git命令拉或推命令的工作好:

enter image description here

我應該怎麼做才能使用PhpStorm的VCS按鈕?

  • 我試圖設置Settings > Version Control > git > SSH Executable到 「原生」:同樣的問題
  • 我試圖安裝膩子實用,運行「佳麗」服務,並導入我的 私鑰:同樣的問題
  • 我試着運行ssh-add:同樣的問題

enter image description here

  • 我試圖配置~/.config文件:同樣的問題

主機myHost.fr
主機名myHost.fr 用戶myloginuser IdentityFile C:\用戶\ username.ssh \ id_rsa

我的Git版本是:2.10.2.windows.1(從https://git-scm.com/download/win下載)

我的操作系統是Windows 10


[編輯]解決方案: 謝謝德米特里橫溢,我找到了解決辦法:

C:\Program Files\Git\cmd文件夾,你會發現文件start-ssh-pageant.cmd

推出之前,有必要創建一個環境變量:

Name: SSH_AUTH_SOCK 
Value: C:\Users\username\.ssh\.ssh-pageant-username 

(我試圖與PAGENT從膩子和SSH代理從Git的Bash的,但它沒有工作)

+0

*(僅供參考)*與PhpStorm論壇上的問題相同:https://intellij-support.jetbrains.com/hc/en-us/community/posts/115000114504-Git-SHH-Private-Key-PAssPhrase – LazyOne

回答

3

內置的IntelliJ在SSH可執行文件目前不支持強大的安全密鑰:https://youtrack.jetbrains.com/issue/IDEA-140196

此外,您的密鑰受密碼保護,這就是爲什麼本機SSH不起作用。 IDE不是終端,因此無法處理由git發出的密碼提示

作爲解決方法,您可以將密鑰加載到ssh-agent,因此從命令提示符執行git pull時不會提示您輸入密碼,並使用本地SSH。