5

我将 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 代码中使用了终端扩展,它打开了一个 git bash 并成功连接到主机

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

4

3 回答 3

5

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

在此处输入图像描述

然后它就像一个魅力。

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

于 2019-11-02T23:36:00.987 回答
1

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

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

在 Windows 7、带有(远程开发 0.15.0、Remote-SSH 0.44.0)的 VS Code 1.36.1 和适用于 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. 用户名/ New..的用户变量:
      • 变量名:SSH_AUTH_SOCK
      • 变量值:/tmp/.ssh-pageant-username 例如/tmp/.ssh-pageant-bill) 环境变量赋值截图
  4. 测试ssh:
    1. 打开命令提示符: Enterset查看环境变量列表。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 启动中,这样在重新启动后它仍然存在。

希望有帮助。

杰瑞。

于 2019-07-10T23:08:07.930 回答
1

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

1. 在某处创建 .bat 文件,内容如下:

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

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

于 2020-06-09T22:02:13.327 回答