【问题标题】:VSCode remote developement using ssh with passphrase protected ssh-key使用带有密码保护的 ssh-key 的 ssh 进行 VSCode 远程开发
【发布时间】:2021-03-14 18:14:56
【问题描述】:

我有一个远程 ssh 服务器,我想在上面进行远程开发。
我的公钥已添加到服务器上的授权密钥中,我的私钥受密码保护。

我按照here 的描述添加了远程主机,使用ssh user@host -i ~/.ssh/key

但是,每当我尝试在远程主机上打开一个新的 VSCode 窗口时,它都会失败,并且我在日志中看到连接超时,这是意料之中的,因为我没有被要求输入我的私钥密码。

我阅读了this 关于使用 ssh 进行远程开发的帖子,并在 google 上进行了搜索,但没有找到任何提示,说明在连接到远程主机时我可以做些什么来启用/输入 ssh 密钥密码。

我知道我可以使用不受密码保护的密钥连接到远程,但我不是要求这样做,我想知道是否可以使用受密码保护的密钥从 VSCode 连接到远程主机。

【问题讨论】:

    标签: visual-studio-code ssh ssh-keys vscode-remote


    【解决方案1】:

    如果您的密钥不是默认密钥,则意味着您需要一个 ~/.ssh/config 条目,在其中指定您的 SSH 连接参数:

    Host myserver
      Hostname host
      User user
      IdentityFile ~/.ssh/key
    

    Visual Studio Code Remote Development会自动读取配置文件,当你要求打开SSH会话时,你会看到“myserver”条目:如果你选择它,打开的SSH会话将使用~/.ssh/key,正确的private键。

    然后,只要您的ssh-agent is enabled,并且您至少输入了一次密码(通过手动ssh myserver),VSCode 将在需要时使用相同的代理来获取密码。

    【讨论】:

      【解决方案2】:

      这就是为我解决的问题,您的问题可能会有所不同。

      1. 在VScode中,选择命令:Remote-SSH: Open SSH Configuration File...
      2. 选择提供给您的位置(或创建配置文件不带扩展名到所需位置),例如: C:\Users\[USER_NAME]\.ssh\config。确保您拥有适当的权限。
      3. 准备配置文件,例如
      Host Custom_Name
        HostName example.server.com
        User your_user_name
        IdentityFile C:\Users\[USER_NAME]\Documents\MobaXterm\home\.ssh\id_rsa
        (or wherever you have the private key)
      
      1. 最后为您的配置文件添加自定义路径。这是我长期缺乏的东西
      {
      // add custom configuration file path
      "remote.SSH.configFile": "C:\\Users\\[USER_NAME]\\.ssh\\config",
      
      // Other settings
      
      // omit comma after *config"* if that is your last setting
      }
      

      现在它应该要求输入密码而不是密码。

      附:这里有很多有用的设置信息,尤其是我为了简洁而省略的键。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-10-18
        • 1970-01-01
        • 2018-05-28
        • 2022-11-06
        • 2015-12-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多