无法在sourcetree和github之间获取SSH密钥

tur*_*2oh 27 putty github ssh-keys atlassian-sourcetree

我能够通过命令提示符成功创建密钥并按照这些说明连接到github:

https://help.github.com/articles/generating-ssh-keys

但是,当我尝试通过Sourcetree和putty连接时,我不能.我试过了:

  1. 使用putty密钥生成器生成新密钥(SSH-2 RSA)
  2. 输入密码
  3. 保存私钥
  4. 保存公钥并添加.pub扩展名
  5. 将密钥从putty密钥生成器窗口复制/粘贴到github
  6. 尝试使用我从github获得的SSH克隆URL从我的本地存储库中从我的私有github存储库中拉出分支

我也尝试打开从github命令行指令生成的密钥,它希望我将它转换为我做过并保存的putty类型密钥,尝试使用该密钥.也没有运气.

我究竟做错了什么?

tur*_*2oh 51

为了使它工作,我最终转到工具 - >选项 - > SSH客户端并将其更改为OpenSSH.我生成并上传了几种不同类型的密钥,试图让它工作,但我认为这是最终做到的.

  • Mac客户端中缺少此选项.有什么线索我可以在mac sourcetree中添加自定义ssh密钥吗? (8认同)
  • 工具在哪里?我在SourceTree上的Mac上看不到这个. (6认同)
  • 当“ PuTTy / Plink”选项(由SourceTree默认选择)不起作用时,这似乎起作用。请注意,“ SSH客户端”选项位于“常规”选项卡中。 (2认同)
  • 对于 Mac 用户,您必须将 SSH 私钥添加到您的钥匙串中。您可以使用“ssh-add -K /path/to/your/private/ssh/key”来做到这一点。 (2认同)

Dee*_*101 24

在我的情况下,我需要切换到一个gitssh基于repo路径而不是https基于repo路径.这会导致SourceTree切换到基于SSH的身份验证.

此设置可在以下位置找到 Repository => Repository setting => Paths

例:

正确的回购路径

git@github.com:<username>/<reponame>.git
Run Code Online (Sandbox Code Playgroud)

要么

ssh://git@github.com/<username>/<reponame>.git
Run Code Online (Sandbox Code Playgroud)

(注意:如果您使用的是不属于您的仓库,请替换usernameorganization name)

错误的回购路径

https://github.com/<username>/<reponame>.git
Run Code Online (Sandbox Code Playgroud)

HTTPS repo路径导致SourceTree试图变得更加智能并且非常失败.系统会提示您输入用户名/密码GUI对话框,如果启用了2因素身份验证,则该对话框将永远不会有效

  • 这应该是选定的答案.需要注意的一点是,如果这不是您的回购,则<username>是组织名称. (2认同)

Ade*_*eel 14

Github要使用SourceTree您可以使用访问令牌登录帐户。要创建访问令牌,请按照以下步骤操作。

  1. Settings
  2. Developer settings从左侧窗格中选择
  3. 选择Personal access token
  4. 点击Generate new token按钮
  5. 给它起个名字
  6. 选择范围并生成令牌(将此令牌保存在安全的地方,因为您将无法再次访问此令牌)

在此输入图像描述 在此输入图像描述

然后在 SourceTree 应用程序中按照以下步骤操作(对于 Mac 用户,不确定其他平台)

  1. 转到首选项->帐户
  2. 单击添加按钮
  3. GitHubHost下拉列表中选择
  4. Basic从下拉列表中选择Auth TypeHTTPSProtocol下拉列表中选择
  5. username在用户名字段中输入您的 GitHub
  6. access token将上一步生成的粘贴到Password字段中
  7. 点击保存即可完成 在此输入图像描述


dyo*_*oll 9

对于 Mac 版本的 SourceTree,工具菜单不存在。

但是,您可以将 ssh 密钥添加到 Mac OS 中的钥匙串中。请参阅:https ://superuser.com/questions/879050/sourcetree-ssh-options-on-os-x

在 Mac OSX 上,本机 SSH 客户端可以直接使用内置钥匙串。要将您的私钥添加到钥匙串,只需使用以下命令:

ssh-add -K /path/of/private/key
Run Code Online (Sandbox Code Playgroud)

例如,如果您的私钥存储在 ~/.ssh 并名为 id_rsa,您将使用以下命令:

ssh-add -K ~/.ssh/id_rsa
Run Code Online (Sandbox Code Playgroud)

然后系统将提示您输入密码,该密码将存储在您的钥匙串中。之后,您应该准备好进行无密码登录。