在 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 並在其中進行開發。