我的新 Web 服务器需要使用 RSA 2048 密钥进行身份验证。
因此我生成了一个密钥,我将ir_rsa
and id_rsa.pub
我的主文件夹中的文件~/.ssh
(Windows 10)。
但是当我使用 cvs 注释(用于拉或推)时,我收到错误:
错误日志是(带有内置 SSH 可执行文件):
15:14:14.657: [MyProject] git -c core.quotepath=false 获取原点
--progress --prune java.io.IOException:连接到 mywebhost.fr:22 时出现问题
com.trilead.ssh2.Connection.connect(Connection.java:791) 在
com.trilead.ssh2.Connection.connect(Connection.java:577) 在
org.jetbrains.git4idea.ssh.SSHMain.start(SSHMain.java:171) 在
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)
在 java.lang.Thread.run(Thread.java:745) 致命:无法读取
远程存储库。请确保您拥有正确的访问权限
并且存储库存在。
错误日志是(将“设置 > 版本控制 > git > SSH 可执行文件”设置为“本机”):
15:13:50.031: [MyProject] git -c core.quotepath=false 获取原点
--progress --prune 权限被拒绝(公钥)。致命:无法从远程存储库读取。请确保您拥有正确的
访问权限和存储库存在。
如果我在终端中使用 Git 命令,则 pull 或 push 命令效果很好:
我应该如何使用 PhpStorm 的 VCS 按钮?
- 我尝试设置
Settings > Version Control > git > SSH Executable
到
“本地”:同样的问题
- 我尝试安装 putty 实用程序,运行“Pageant”服务并导入我的
私钥:同样的问题
- 我试着跑
ssh-add
: 同样的问题
托管 myHost.fr
主机名 myHost.fr
用户 myloginuser
IdentityFile C:\Users\用户名.ssh\id_rsa
我的 Git 版本是:2.10.2.windows.1(下载自https://git-scm.com/download/win https://git-scm.com/download/win)
我的操作系统是 Windows 10
[编辑]解决方案:谢谢 Dmitriy Smirnov,我找到了解决方案:
In the C:\Program Files\Git\cmd
文件夹中您将找到该文件start-ssh-pageant.cmd
.
启动之前需要创建一个环境变量:
Name: SSH_AUTH_SOCK
Value: C:\Users\username\.ssh\.ssh-pageant-username
(我尝试使用 Putty 中的 Pagent 和 Git Bash 中的 ssh-agent,但没有成功)