Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SmartGit不会通过ssh进行身份验证_Git_Ssh_Smartgit - Fatal编程技术网

SmartGit不会通过ssh进行身份验证

SmartGit不会通过ssh进行身份验证,git,ssh,smartgit,Git,Ssh,Smartgit,我有一个安装了gitolite的Web服务器,在那里我使用ssh密钥登录。通常我只是在服务器上使用git命令行,但对于一个新项目,我需要在windows pc上克隆一个repo,我想使用SmartGit 但我已经花了几个小时通过Smartgit克隆回购协议。作为远程Git,我使用通常在服务器上使用的url:me@my-服务器:repo然后过了一段时间,我得到了一个对话框“SSH身份验证”,我选择了我的私钥,就像我在pagent中做的那样,并输入了我的密码短语。但是,当我单击“登录”时,它只是尝试

我有一个安装了gitolite的Web服务器,在那里我使用ssh密钥登录。通常我只是在服务器上使用git命令行,但对于一个新项目,我需要在windows pc上克隆一个repo,我想使用SmartGit

但我已经花了几个小时通过Smartgit克隆回购协议。作为远程Git,我使用通常在服务器上使用的url:me@my-服务器:repo然后过了一段时间,我得到了一个对话框“SSH身份验证”,我选择了我的私钥,就像我在pagent中做的那样,并输入了我的密码短语。但是,当我单击“登录”时,它只是尝试连接一段时间,然后再次显示“SSH身份验证”对话框。没有错误消息或任何东西


我尝试通过命令行用相同的数据克隆repo,效果很好。那么,我缺少了什么吗?

需要将我的ssh私钥保存为中的OpenSSH密钥,因为SmartGit只理解该格式。

是的,就是这样

我只想详细介绍一下,帮助那些从头开始的人:

在windows上,可以执行以下步骤:

从安装msysgit 要根据许多git服务器(如Assembla)的需要生成公钥/私钥对,请使用PuTTYgen 你会发现: 单击Generate并移动鼠标,直到它告诉您该键已生成。(可选)输入密码短语以保护您的私钥 根据需要保存或复制公钥 使用菜单语音转换/导出OpenSSH密钥保存私钥以与SmartGit一起使用 使用最后一个文件在SmartGit中进行身份验证
我发现更容易将SmartGit |首选项|命令|可执行文件更改为使用C:\Program Files x86\Git\bin\Git.exe,然后在系统环境中设置Git|u SSH=plink

如果要使用putty作为ssh客户端,请执行以下步骤:

编辑|首选项|命令|身份验证,选择使用系统SSH 客户 在windows系统变量中,将GIT_SSH=plink设置为 putty的plink.exe位置
之后,请使用pageant并加载私钥

如果您在MacOS X上使用SmartGit,此问题会导致在Finder中显示意外对话框:

SSH-输入密钥“/Users/username/.SSH/id\u rsa”的密码短语:

当SmartGit启动时,它会弹出。看起来是这样的:

ssh-add -K ~/.ssh/id_rsa    (assuming id_rsa is your private key file)
它看起来像一个查找器对话框,完全没有对SmartGit的引用,这让人感到奇怪和困惑。这通常是由于SSH密钥密码未存储在Keychain Access应用程序中造成的。SmartGit将在那里寻找它。您需要将其添加到其中,如下所示:

ssh-add -K ~/.ssh/id_rsa    (assuming id_rsa is your private key file)
重新启动计算机后,有时需要使用上述命令。另见以下指南:

生成PEM私钥 ssh-keygen-trsa-b4096-mpem

将公钥添加到git主机

从smargit UI克隆或重新克隆项目,
在我的情况下,我不得不删除我的本地项目,然后从smargit克隆它,我无法使它与现有的本地项目一起工作,smartgit总是告诉我私钥id_rsa错误或密码短语错误,我花了一天时间才成功,我非常讨厌smartgit

这很奇怪,但是如果您单击PuTTYgen Save private key或Save public key,它将不起作用。您需要通过菜单转换保存→ 导出OpenSSH密钥。此文件将在Windows上访问,您也可以切换到SmartGit首选项中的内部SSH工具-它要求提供SSH密钥密码并正常工作每次重新启动后我都会遇到此问题,有人知道为什么会发生此问题以及如何一劳永逸地防止它吗?不管怎样,我在这里找到了答案