【发布时间】:2017-03-10 00:10:16
【问题描述】:
【问题讨论】:
【问题讨论】:
是的,您可以避免此提示,而无需删除密码。
这样做通常相当简单,并且依赖于ssh-agent 程序。首先,在启动 VSCode 之前,在 bash shell 提示符下运行:
$ eval `ssh-agent`
这将在后台启动一个ssh-agent 进程,该进程将在其内存中记住解密的私钥。 eval 的原因是 ssh-agent 打印两个需要添加到 shell 的环境变量设置。 (你也可以正常运行它,然后手动将其输出复制并粘贴回 shell。)
接下来,运行:
$ ssh-add
这将提示您输入密码,然后ssh-agent 将为需要它的任何其他进程提供私钥服务。
最后,从运行第一个命令的同一个 shell 启动 VSCode:
$ code
这样 VSCode 将继承从 ssh-agent 获取关键服务所需的环境变量,因此只要 ssh-agent 进程继续运行,就不会提示您输入密码。
不幸的是,尽管它非常有用,但很难在 ssh-agent 上找到好的(简洁、易读的)文档。但这里有一些可能性:
man page 与手册页的典型特征一样,注重细节,注重示例。
http://rabexc.org/posts/using-ssh-agent的文章还不错,涵盖了一些更高级的情况,尤其是代理转发。
Stack Exchange question, "what's the purpose of ssh-agent?"也不错。
【讨论】:
我找到的唯一解决方案是删除密码:
ssh-keygen -p
它将询问您当前的密码并将新密码留空以将其删除。
【讨论】:
对于 Windows 10,如果您使用 Remote - SSH 插件偶然发现了此问题,请在 powershell 中运行以下命令(以管理员身份):
# Make sure you're running PowerShell as an Administrator
Set-Service ssh-agent -StartupType Automatic
Start-Service ssh-agent
Get-Service ssh-agent
(正如this comment 在git(非)问题上指向的documentation 所建议的那样。)
【讨论】:
ssh-add,例如:$HOME\Documents\PowerShell\Microsoft.PowerShell_profile.ps1
在设置中使用git.autofetch = false 禁用自动提取
【讨论】:
这里有一个很好的关于如何在 Windows 中解决它的指南:
https://www.cgranade.com/blog/2016/06/06/ssh-keys-in-vscode.html
总结:
从开始菜单运行 PuTTYgen 并选择 File → Load Key.... 从那里导航到 C:\Users\.ssh\ 并选择 id_rsa(私钥)。您可能必须在对话框中下拉文件类型选择器才能看到这一点,因为 PuTTYgen 默认会过滤除以 *.ppk 结尾的文件之外的所有内容。选择后,PuTTY 将提示您通过输入密码来解锁您的密钥。这样做,PuTTYgen 将显示相应的公钥。选择文件 → 保存私钥,以 PuTTY 格式导出您的私钥,而不是 OpenSSH 格式。我建议将其作为 id_rsa.ppk 保存在与 id_rsa 相同的文件夹中
最后,从“开始”菜单运行 Pageant(将来,这将由我们在上面创建的快捷方式自动处理)。这将在系统托盘中添加一个新图标。它可能被箭头隐藏;如果是这样,请单击箭头以使所有系统托盘图标可见。右键单击选美并选择添加密钥。浏览到您保存 id_rsa.ppk 的位置并选择它。系统将提示您解锁密钥。执行此操作后,您的解锁密钥将在 Pageant 中可用,直到您注销或退出 Pageant。
添加指纹,在 shell 中运行这两者之一(取决于您的需要)
'C:\Program Files (x86)\PuTTY\plink.exe' git@github.com
'C:\Program Files (x86)\PuTTY\plink.exe' git@bitbucket.org
将 GIT_SSH 配置为 C:\Program Files (x86)\PuTTY\plink.exe
【讨论】: