【问题标题】:VSCode Keep asking for passphrase of SSH keyVSCode 不断询问 SSH 密钥的密码
【发布时间】:2017-03-10 00:10:16
【问题描述】:

我最近升级了我的 VSCode 版本 1.10.2。 当我将密码短语放在我的私人 SSH 密钥上时,即使我多次输入它,它也开始频繁地询问它,这非常烦人。无论如何我可以摆脱它吗?谢谢。

【问题讨论】:

    标签: visual-studio-code


    【解决方案1】:

    是的,您可以避免此提示,而无需删除密码。

    这样做通常相当简单,并且依赖于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 上找到好的(简洁、易读的)文档。但这里有一些可能性:

    【讨论】:

    • Mint XFCE 19.3:这对我有用,直到重新启动。我用 Seahorse 创建了一个新的 RSA 密钥,这似乎是持久的
    【解决方案2】:

    我找到的唯一解决方案是删除密码:

    ssh-keygen -p
    

    它将询问您当前的密码并将新密码留空以将其删除。

    【讨论】:

      【解决方案3】:

      对于 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 所建议的那样。)

      【讨论】:

      • 也可以在你的powershell初始化脚本中调用ssh-add,例如:$HOME\Documents\PowerShell\Microsoft.PowerShell_profile.ps1
      【解决方案4】:

      在设置中使用git.autofetch = false 禁用自动提取

      【讨论】:

        【解决方案5】:

        这里有一个很好的关于如何在 Windows 中解决它的指南:

        https://www.cgranade.com/blog/2016/06/06/ssh-keys-in-vscode.html

        总结:

        • 安装所需软件(腻子)
        • 设置私钥(使用 ssh-keygen 将在 .ssh 文件夹中创建私钥和公钥)
        • 设置 SSH 代理:让 Pageant 工具在 Windows 启动时运行
        • 将您的密钥导入为 ppk 格式

        从开始菜单运行 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

        【讨论】:

        • 用详细信息更新了我的答案(仅摘要,尽量保持简短)