在 Visual Studio Code 中配置远程 SSH 连接

Jacki

Visual Studio Code 是一个功能非常丰富且多功能的文本编辑器,可以使开发人员和系统管理员受益。您可以使用 VS Code 编辑 PowerShell 脚本、配置文件并运行控制台命令。这远程SSH扩展允许您通过 SSH 连接到远程计算机,并直接从计算机上安装的 VS Code 在远程 Windows 或 Linux 主机上编辑文件、脚本、配置或执行命令。

以下是如何配置 Visual Studio Code SSH 客户端以连接到远程主机。

运行 VS Code 并转到扩展Ctrl + Shift + X )。现在找到并安装远程 SSH 扩展

这将自动安装以下远程 SSH 附加组件:编辑配置文件和远程资源管理器(扩展包选项卡)。

在 VSCode 左侧面板中选择“远程资源管理器”以创建新的 SSH 连接。连接向导将提示您输入:

  • SSH 连接字符串:[email protected]
  • 包含此连接设置的配置文件的路径(默认情况下,它是C:Users%username%.sshconfig)。

您还可以通过按创建新连接CTRL + SHIFT + P并选择远程 SSH:连接到主机

完成此操作后,您现在可以通过 SSH 连接到远程主机。从列表中选择主机并单击连接

第一次连接时,VSCode 会提示您输入远程 SSH 主机 (Linux/Windows/macOS) 上的平台类型和连接密码:

连接到远程 SSH 主机后,您可以直接从 VSCode 编辑器编辑任何文本文件并执行 shell 命令,就像通过 SSH 客户端连接一样(单击终端 -> 新终端以打开控制台提示符)。

如果您尝试在 VSCode 中保存非 root 用户无法编辑的文件(无需sudo),你会得到以下错误::

Failed to save 'sshd_config': Unable to write file 'vscode-remote://ssh-remote+192.168.79.128/etc/ssh/sshd_config' (NoPermissions (FileSystemError): Error: EACCES: permission denied, open '/etc/ssh/sshd_config').

解决此问题的一种方法是使用 VSCode 扩展在远程另存为根目录 – SSH。安装此扩展后,您可以使用以下命令以 sudo 模式保存文件另存为根目录命令。

支持基于密码和基于 SSH 密钥的身份验证远程SSH

推荐阅读:如何修复 Visual Studio Code 中丢失的图标

让我们尝试在远程 Windows 主机上配置基于 SSH 密钥的身份验证:

  1. 在客户端生成SSH密钥对:ssh-keygen -t ed25519本例中使用内置SSH客户端的Windows 10。
  2. 复制公钥文件C:Users%username%.sshid_ed25519进入文件C:Usersuser1.sshauthorized_keys在您的远程主机上(此处,user1 是您将连接的用户名);
  3. 检查 Windows 上的 OpenSSH 服务器配置文件中是否启用了以下选项:
    PubkeyAuthentication yes
  4. 现在打开文件C:Users%username%.sshconfig其中包含 SSH 主机的 VSCode 连接设置。找到主机并添加 IdentityFile 参数以及您的私钥文件的路径:
Host 192.168.31.4
  HostName 192.168.31.4
  User root
  IdentityFile "C:Usersuser1.sshid_ed25519"

打开配置文件的快速方法是按F1->远程 SSH:打开 SSH 配置文件

现在,与 SSH 主机的连接将通过基于密钥的身份验证完成(无需密码)。

您可以使用 LocalForward 指令来配置 SSH 隧道和端口转发。或者您可能想使用ForwardAgentProxyJump相反指令:

Host PublicJumpServer1
  HostName public.woshub.com
  User user1
  ForwardAgent yes

Host PrivateServer1
  HostName private.contoso.com
  User user1
  ProxyJump PublicJumpServer1

您还可以使用 VS Code 连接到 MS SQL Server 并在其中进行开发。