我有一个安装了 gitolite 的网络服务器,我使用 ssh 密钥登录。通常我只是使用命令行在服务器本身上使用 git,但对于一个新项目,我需要在我的 Windows 电脑上克隆一个存储库,我想为此使用 SmartGit。
但我已经花了几个小时通过 Smartgit 克隆存储库。作为远程 Git,我使用通常在服务器上使用的 url:me@my-server:the-repo 然后过了一会儿,我得到一个对话框“SSH 身份验证”,然后我选择我的私钥,就像我对 pagent 所做的那样,然后输入我的密码。但是当我单击“登录”时,它只是尝试连接一段时间,然后再次显示“SSH 身份验证”对话框。没有错误消息或任何东西。
我尝试通过命令行使用相同的数据克隆存储库,效果很好。那么我有什么遗漏的吗?
需要将我的 ssh 私钥保存为 PuTTYgen 中的 OpenSSH 密钥,因为 SmartGit 只理解该格式。
如果您想使用putty作为ssh客户端,请按照以下步骤操作:
Use System SSH
Client
之后,请使用pageant并加载私钥
如果您在 MacOS X 上使用 SmartGit,此问题会导致 Finder 中显示意外的对话框:
"SSH - Enter passphrase for key '/Users/username/.ssh/id_rsa':"
当SmartGit启动时它会弹出。看起来像这样:
它看起来像一个 Finder 对话框,很奇怪且令人困惑,完全没有提到 SmartGit。这通常是由于 SSH 密钥密码未存储在Keychain Access 应用程序中所致。这就是 SmartGit 会寻找它的地方。您需要将其添加到其中,如下所示:
ssh-add --apple-use-keychain ~/.ssh/id_rsa (assuming id_rsa is your private key file)
ssh-add -K ~/.ssh/id_rsa (assuming id_rsa is your private key file)
上述命令通常需要重新启动计算机后才能执行。另请参阅这些指南:
我发现更改 SmartGit 更容易 |偏好 |命令 |可执行文件使用“C:\Program Files (x86)\Git in\git.exe”,然后在系统环境中设置 GIT_SSH=plink。
ssh-keygen -t rsa -b 4096 -m PEM
(将公钥添加到您的 git 主机)
(就我而言,我必须删除本地项目,然后从 smartgit 克隆它,我无法使其与现有的本地项目一起使用,smartgit 总是告诉我私钥(id_rsa)错误或密码短语错误错了,我花了一天时间才成功,我太讨厌smartgit了!!!)