SmartGit 不会使用 ssh 进行身份验证

问题描述 投票:0回答:6

我有一个安装了 gitolite 的网络服务器,我使用 ssh 密钥登录。通常我只是使用命令行在服务器本身上使用 git,但对于一个新项目,我需要在我的 Windows 电脑上克隆一个存储库,我想为此使用 SmartGit。

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

我尝试通过命令行使用相同的数据克隆存储库,效果很好。那么我有什么遗漏的吗?

git ssh smartgit
6个回答
25
投票

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


13
投票

是的,就是这样!

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

在 Windows 上,您可以执行以下步骤:

  1. 这里
  2. 安装msysgit
  3. 要根据许多 git 服务器(如 Assembla)的需要生成公钥/私钥对,请使用 PuTTYgen 您可以在here找到: 单击 Generate移动鼠标,直到它告诉您密钥已生成。或者,输入密码来保护您的私钥
  4. 根据需要保存或复制公钥
  5. 使用菜单语音保存私钥以与 SmartGit 一起使用转换/导出 OpenSSH 密钥
  6. 使用最后一个文件在 SmartGit 中进行身份验证

6
投票

如果您想使用putty作为ssh客户端,请按照以下步骤操作:

  1. 编辑|首选项|命令|身份验证,选择
    Use System SSH
    Client
  2. 在 Windows 系统变量中,设置 GIT_SSH=plink (其中 putty 的 plink.exe 位置)

之后,请使用pageant并加载私钥


5
投票

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

"SSH - Enter passphrase for key '/Users/username/.ssh/id_rsa':"

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

它看起来像一个 Finder 对话框,很奇怪且令人困惑,完全没有提到 SmartGit。这通常是由于 SSH 密钥密码未存储在Keychain Access 应用程序中所致。这就是 SmartGit 会寻找它的地方。您需要将其添加到其中,如下所示:

  • 对于 MacOS 12 Monterey,请在终端中使用:

ssh-add --apple-use-keychain ~/.ssh/id_rsa    (assuming id_rsa is your private key file)

  • 对于 MacOS 11 (Big Sur)、10.15 (Catalina)、10.14 (Mojave)、10.13 (High Sierra) 及更低版本,请在终端中使用:

ssh-add -K ~/.ssh/id_rsa    (assuming id_rsa is your private key file)

上述命令通常需要重新启动计算机后才能执行。另请参阅这些指南:


4
投票

我发现更改 SmartGit 更容易 |偏好 |命令 |可执行文件使用“C:\Program Files (x86)\Git in\git.exe”,然后在系统环境中设置 GIT_SSH=plink。


0
投票
  1. 生成PEM私钥

ssh-keygen -t rsa -b 4096 -m PEM

(将公钥添加到您的 git 主机)

  1. 从 smartit UI 克隆(或重新克隆)您的项目,

(就我而言,我必须删除本地项目,然后从 smartgit 克隆它,我无法使其与现有的本地项目一起使用,smartgit 总是告诉我私钥(id_rsa)错误或密码短语错误错了,我花了一天时间才成功,我太讨厌smartgit了!!!)

© www.soinside.com 2019 - 2024. All rights reserved.