我能够通过命令提示符成功创建密钥并按照这些说明连接到github:
https://help.github.com/articles/generating-ssh-keys
然而,当我尝试通过Sourcetree和putty连接时,我不能。我试过了:
我也尝试打开从github命令行指令生成的密钥,它希望我将它转换为我做过并保存的putty类型密钥,尝试使用该密钥。也没有运气。
我做错了什么?
答案 0 :(得分:48)
为了使它工作,我最终去了工具 - >选项 - > SSH客户端并将其更改为OpenSSH。我生成并上传了几种不同类型的密钥,试图让它工作,但我认为这是最终做到的。
答案 1 :(得分:22)
就我而言,我需要切换到基于//select first item
spnReport.setSelection(0);
或git
的回购路径,而不是基于ssh
的回购路径。这会导致SourceTree切换到基于SSH的身份验证。
此设置位于https
示例:
更正回购路径
Repository => Repository setting => Paths
或
git@github.com:<username>/<reponame>.git
(注意:如果您使用的是不属于您的回购,请将ssh://git@github.com/<username>/<reponame>.git
替换为username
)
错误回购路径
organization name
HTTPS repo路径导致SourceTree试图变得更加聪明并且失败了。系统会提示您输入用户名/密码GUI对话框,如果您启用了2因素身份验证,则该对话框将无法运行。
答案 2 :(得分:1)
您可能需要考虑从OpenSSH切换到Putty / Plink并使用嵌入式Git而不是主机操作系统提供的Git。在Windows上使用ssh-agent比直接从SourceTree和PuttyGen点击它更复杂。
如果您仍想使用终端配置SSH并启动ssh-agent,请参阅后两步。
答案 3 :(得分:1)
对于 Mac 版本的 SourceTree,工具菜单不存在。
但是,您可以在 Mac OS 中将 ssh 密钥添加到您的钥匙串中。请参阅:https://superuser.com/questions/879050/sourcetree-ssh-options-on-os-x
在 Mac OSX 上,本地 SSH 客户端可以直接使用内置钥匙串。要将您的私钥添加到钥匙串,只需使用以下命令:
lst = list(range(0,10))
import random
span = 3
def get_random(lst, span):
starting_first = random.sample(lst[:-span*2+1], 1)[0]
first_return = [starting_first, starting_first+1, starting_first+2]
second_start = random.sample(lst[lst.index(first_return[-1]):-span+1],1)[0]
second_return = [second_start, second_start+1, second_start+2]
return (first_return, second_return)
例如,如果您的私钥存储在 ~/.ssh 并命名为 id_rsa,您将使用以下命令:
ssh-add -K /path/of/private/key
然后系统会提示您输入密码,该密码将存储在您的钥匙串中。在此之后,您应该准备好进行无密码登录。
答案 4 :(得分:0)
对于MacOS上的Sourcetree,我必须从OAuth更改为基本身份验证,使用“git”作为用户名(不我的GitHub用户名),并生成SSH密钥并将其输入到GitHub中。只有这样我才能在Sourcetree中通过SSH克隆GitHub repo。
答案 5 :(得分:0)
要使用 Github
登录 SourceTree
帐户,您可以使用访问令牌。要创建访问令牌,请按照以下步骤操作。
Settings
Developer settings
Personal access token
Generate new token
按钮然后在 SourceTree 应用程序中按照以下步骤操作(对于 Mac 用户,不确定其他平台)