Pat*_*ers 15 authentication passwords ssh atlassian-sourcetree
在SourceTree中我使用OpenSSH作为身份验证并创建了+添加了我的SSH密钥(在Windows上),如下所示:
1)ssh-keygen -t rsa -C "my@email.com"
(并输入文件名,密码等)
2)将密钥添加到SSH代理:
eval "$(ssh-agent)"
ssh-add id_rsa
3)使用cat id_rsa.pub打印我的公钥将SSH密钥添加到GitLab
4)通过"工具>添加SSH密钥",然后输入密码("工具>选项> SSH客户端配置",我选择了OpenSSH),将公钥添加到SourceTree.
完成这些步骤后,我可以推送和拉取代码.但是,每次重新启动SourceTree时,都会弹出一个终端,我必须再次重新输入密码*.如何让SourceTree/SSH代理记住这个密码?
PS.我的密钥保存在/ d/MyName/Gitlab /而不是〜/ .ssh /这样的目录中,但这应该不是问题,对吧?
编辑:
*终端显示的消息:
SourceTree is loading your SSH key into the agent for authentication
Please enter your passphrase if prompted to do so
Enter passphrase for D:\MyName\GitLab\.ssh\id_rsa:
您可以使用 Windows OpenSSH ssh-agent 来管理您的密钥。问题是 Windows 上的 Sourcetree 希望启动自己的 ssh-agent 实例,而不是使用已经运行的服务。即使您可以让它工作,它仍然会在启动时提示您输入密钥密码,因为 Sourcetree 的 ssh 代理进程不会将您的密钥保存到 Windows 钥匙串中。
有大量关于如何使用 Pageant 作为 ssh 代理的说明,但这不是您来这里的原因。您来到这里是因为您想要使用 OpenSSH 代理、OpenSSH 格式的密钥和密码,但不会到处提示您输入所述密码。
诀窍是将所有对 Pageant 的请求代理到您的 OpenSSH 代理。
安装 OpenSSH。启动 ssh-agent 服务并设置为自动。将您的私钥添加到代理中
ssh-add <key_file>
Run Code Online (Sandbox Code Playgroud)
将您的公钥添加到您想要进行身份验证的主机。
测试您是否可以通过 ssh 进行身份验证:
ssh -T git@github.com
Run Code Online (Sandbox Code Playgroud)
现在,当您登录 Windows 帐户时,您的私钥将被加载,并且您无需再次提供密码。
为了允许通常使用 Pageant 的程序和库(例如 Sourcetree、WinSCP 和 Fabric)使用 ssh-agent 提供的密钥,有一个很棒的程序https://github.com/ndbeals/winssh-pageant
按照说明安装winssh-pageant,将其安排为在 Windows 启动时启动的任务。
现在,对 Pageant 的 NamedPipe 的所有调用都将被代理到 OpenSSH 代理。
让 SourceTree 与 OpenSSH 一起工作的最后一步有点违反直觉。转到工具| 选项| 常规并将 SSH 客户端设置为 PuTTY/Plink,并取消选中“Sourcetree 打开时自动启动 SSH 代理”。
您手动启动代理并设置环境变量以便命令找到它。
每当您在未设置这些环境变量的情况下启动命令(如 SourceTree)时,该命令将无法访问代理,因此会要求您输入密码。
让您的代理在系统启动时启动应该可以解决问题。
如果 ssh 无法到达代理,它也会进行调查,~/.ssh/如果您将密钥放在那里,它也应该可以工作。(看一下man ssh。)
| 归档时间: |
|
| 查看次数: |
6811 次 |
| 最近记录: |