【问题标题】:How to get vscode-remote-ssh extension connects via git bash in windows?如何在 Windows 中通过 git bash 连接 vscode-remote-ssh 扩展?
【发布时间】:2019-05-30 17:19:55
【问题描述】:

我已将 vs 代码配置为在 Windows 7 中使用 git bash 作为终端。
"terminal.integrated.shell.windows": "C:\Program Files\Git\bin\bash.exe"

我已启用基于 SSH 密钥的身份验证来远程访问主机。所有这些都可以在 VS Code 的终端中正常工作。

但是,当使用 vscode-remote SSH 扩展连接到主机时出现错误,因为它尝试使用“终端进程命令 'cmd.exe'”而不是 git bash 进行连接。

我在 vs 代码中检查了我的终端设置配置,它指向 git bash.exe

我在 vs code 中使用了终端扩展,它打开了一个 git bash 并成功连接到主机

我是否缺少强制 Remote-SSH 使用 git bash 进行连接的设置?

【问题讨论】:

  • 在命令提示符中添加和安装兼容 OpenSSH 的 SSH 客户端可能会更快?

标签: vscode-remote


【解决方案1】:

JerryL 的回答让我意识到,我可以在 VS Code Preferences 的 remote.SSH.path 设置中简单地设置 GIT 的 ssh 路径 c:\Program Files\Git\usr\bin\ssh.exe

然后它就像一个魅力。

为了清楚起见,我的 VS Code 版本是:1.40.0-insider(系统设置)

【讨论】:

    【解决方案2】:

    我在尝试让 VS Code Remote 使用 Putty Pageant 时遇到了类似的问题。

    1。在某处创建具有以下内容的 .bat 文件:

    echo OpenSSH
    "C:\YOUR_PATH_HERE\PLINK.EXE" -ssh %*
    

    2。打开 VS Code 设置,在搜索中输入远程 ssh 路径,找到 Remote.SSH:路径设置
    3. 将路径粘贴到您的 .bat 文件
    4. 现在VS Code Remote可以正确使用Pageant了。

    【讨论】:

    • 不幸的是,这不适用于自定义 SSH 端口。 ssh.exe 期望 -p XXXXplink.exe 期望资本 -P xxxx。第二个问题是您第一次需要在 VSC 之外手动运行生成的命令才能接受指纹密钥的保存。您可以通过将 bat 文件行更改为 echo y | "C:\YOUR_PATH_HERE\PLINK.EXE" -ssh %* 来解决这个问题
    • @fred 来自此 SO 答案的稍微修改的批处理脚本将 -p 更改为 -P:stackoverflow.com/a/14723487/409149(记得输入echo OpenSSH)。我将它与我的 VS Code 一起使用,它可以工作。虽然我仍然不得不手动接受指纹。
    【解决方案3】:

    我在尝试让 MS VS Code Studio Remote-SSH 与 Putty 的 Pageant 一起工作时遇到了类似的问题。我安装了适用于 Windows 的 Git,并且在 Git Bash shell 中,我可以 ssh 并获取 Pageant 密钥,并且不需要密码。

    但是 VS Code Remote-SSH,在 C:\Program Files\Git\usr\bin\ssh.exe 中使用 Git ssh 时使用的是 Windows 7 cmd.exe shell,它不与 Pageant 对话。

    在 Windows 7、VS Code 1.36.1(远程开发 0.15.0、Remote-SSH 0.44.0)和适用于 Windows 2.22 的 Git 上什么对我有用:

    1. 启动 Pageant (C:\Program Files\PuTTY\pageant.exe) 并添加密钥。
    2. 启动 ssh 代理 shim (C:\Program Files\Git\cmd\start-ssh-pageant.cmd)。这负责寻找 ssh-agent 的 Git ssh 和 Pageant 之间的通信。
    3. 创建 SSH_AUTH_SOCK 环境变量
      1. 控制面板/系统/高级设置/环境变量..
      2. username / New.. 的用户变量:
    4. 测试 ssh:
      1. 打开命令提示符:输入set 以查看环境变量列表。 SSH_AUTH_SOCK 变量是否正确设置为 /tmp/.ssh-pageant-bill 之类的内容?
      2. 使用 Git 的 ssh.exe 尝试 ssh 到您的主机:c:\Program Files\Git\usr\bin\ssh.exe user@host 如果这有效,那么 VS Code Remote-SSH 应该有效。

    最后,我将 Pageant 和 start-ssh-pageant.cmd 添加到我的 Windows 7 启动中,这样在重新启动后它仍然存在。

    希望对您有所帮助。

    杰瑞。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-07
      • 2014-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多