【經驗】Ubuntu|VMware 新建虛擬機后打開 SSH 服務、在主機上安裝vscode并連接、配置 git 的 ssh

常常有人問VMware-Tools裝了也復制粘貼不了怎么辦,這個東西影響因素太多了,我總是建議直接用SSH連接虛擬機。但是之前一直都沒有出教程,現在出一個簡單的教程。

文章目錄

  • 在 Ubuntu 虛擬機(VMware)中開啟 SSH 服務、配置 VSCode 遠程連接與 Git SSH 設置
    • 一、新建 VMware 虛擬機并安裝 Ubuntu
    • 二、在 Ubuntu 虛擬機中開啟 SSH 服務
      • 步驟 1:安裝 OpenSSH 服務器
      • 步驟 2:檢查 SSH 狀態
      • 步驟 3:配置防火墻(如已啟用 UFW)
    • 三、在主機上安裝 VSCode 并連接虛擬機
      • 步驟 1:下載并安裝 VSCode
      • 步驟 2:安裝 Remote - SSH 插件
      • 步驟 3:連接虛擬機
    • 四、配置 Git 的 SSH 認證
      • 步驟 1:生成 SSH 密鑰對
      • 步驟 2:將公鑰添加到 Git 平臺
      • 步驟 3:配置 Git 用戶信息
      • 步驟 4:測試 SSH 連接
    • 五、常見問題與解決方案
    • 六、總結

在 Ubuntu 虛擬機(VMware)中開啟 SSH 服務、配置 VSCode 遠程連接與 Git SSH 設置

在虛擬化環境中進行開發時,通過 SSH 連接遠程服務器可以提升代碼管理和協作效率。本文將指導您如何在 VMware 的 Ubuntu 虛擬機中啟用 SSH 服務,并通過 VSCode 實現遠程開發,最后完成 Git 的 SSH 配置。


一、新建 VMware 虛擬機并安裝 Ubuntu

這一步的具體過程可直接看視頻:ROS|Ubuntu20.04安裝ROS Noetic全過程(從VMware虛擬機安裝開始)_嗶哩嗶哩_bilibili

  1. 創建虛擬機

    • 打開 VMware Workstation 或 Fusion
    • 點擊 Create a New Virtual Machine → 選擇 Linux 發行版(Ubuntu)→ 指定鏡像文件路徑。
    • 配置 CPU、內存及硬盤容量,建議至少分配:
      • 內存:2GB+
      • 硬盤:30GB SSD
  2. 安裝 Ubuntu

    • 啟動虛擬機后選擇 Install Ubuntu → 按照提示完成語言、鍵盤布局設置。
    • 選擇 Erase disk and install(格式化并全新安裝)→ 設置用戶名和密碼。

二、在 Ubuntu 虛擬機中開啟 SSH 服務

步驟 1:安裝 OpenSSH 服務器

sudo apt update && sudo apt install openssh-server -y

步驟 2:檢查 SSH 狀態

systemctl status ssh
# 若未運行,執行啟動命令:
sudo systemctl start ssh
sudo systemctl enable ssh    # 設置開機自啟

步驟 3:配置防火墻(如已啟用 UFW)

默認不用管,因為通常都沒啟用防火墻,但也可以檢查一下。

允許 SSH 端口(默認22):

sudo ufw allow 22/tcp
sudo ufw status   # 查看規則是否生效

三、在主機上安裝 VSCode 并連接虛擬機

步驟 1:下載并安裝 VSCode

  • 訪問 VSCode 官網 下載對應系統的安裝包。
  • Windows 用戶可通過微軟商店安裝。

步驟 2:安裝 Remote - SSH 插件

  1. 打開 VSCode → 進入擴展市場,搜索 Remote - SSH 并安裝。
  2. 安裝完成后,點擊左下角的遠程探索圖標(電腦+箭頭符號)。

步驟 3:連接虛擬機

  1. 在命令行輸入:

    ssh 用戶名@虛擬機IP地址
    # 示例:
    ssh ubuntu@192.168.1.100
    
    • 若提示首次連接,選擇 Yes 添加主機密鑰。
    • 輸入之前設置的 Ubuntu 密碼。
  2. 成功后,VSCode 將切換到遠程環境界面。您可以在虛擬機上直接開發代碼,并保存在本地磁盤路徑中。


四、配置 Git 的 SSH 認證

步驟 1:生成 SSH 密鑰對

在 Ubuntu 虛擬機中運行:

ssh-keygen -t ed25519 -C "your_email@example.com"
# 按回車接受默認路徑(~/.ssh/id_ed25519)和空密碼。

步驟 2:將公鑰添加到 Git 平臺

  1. 復制公鑰內容:
    cat ~/.ssh/id_ed25519.pub
    
  2. 登錄 GitHub/GitLab 等平臺,進入 SSH Keys 頁面粘貼公鑰,并保存。

步驟 3:配置 Git 用戶信息

git config --global user.name "Your Name"
git config --global user.email "your_email@example.com"

步驟 4:測試 SSH 連接

嘗試連接 Git 平臺:

ssh -T git@github.com    # 測試 GitHub 是否認證成功
# 成功提示:"Hi username! You've successfully authenticated..."

五、常見問題與解決方案

  1. SSH 連接超時

    • 檢查 VMware 網絡模式:確保虛擬機使用橋接網絡(Bridged Mode)或主機僅能訪問的 NAT。

    • 獲取虛擬機 IP:

      ip a | grep inet    # 查看本機IP地址
      
    • 主機防火墻是否阻止了22端口。

    • 更多詳情參考:【經驗】VScode 遠程 SSH 連接 Ubuntu 或 TrueNas 出錯,Could not establish connection-CSDN博客

  2. VSCode 連接失敗

    • 確認 SSH 服務已啟動,且虛擬機的 sshd_config 文件中未禁用密碼登錄(PasswordAuthentication yes)。

    • 更多詳情參考:【經驗】VScode 遠程 SSH 連接 Ubuntu 或 TrueNas 出錯,Could not establish connection-CSDN博客

  3. Git SSH 認證失敗

    • 檢查 SSH 密鑰路徑是否正確:
      eval $(ssh-agent)
      ssh-add ~/.ssh/id_ed25519
      
    • 確認 Git 平臺的公鑰與本地密鑰對匹配。
    • 更多詳情參考:【經驗】Git|Windows下如何管理和部署多個Git賬號的SSH密鑰文件_windows identityfile git rsa-CSDN博客

六、總結

通過本文,您已掌握以下技能:

  • 在 Ubuntu 虛擬機中部署 SSH 服務并配置防火墻。
  • 利用 VSCode 的 Remote-SSH 插件實現無縫遠程開發。
  • 配置 Git 的 SSH 認證以安全地管理代碼倉庫。

此方案適用于本地開發環境搭建、測試或輕量級項目協作,可顯著提升跨平臺開發效率。


提示: 為確保安全性,請定期更新系統補丁,并限制非必要端口的開放。對于生產環境,建議使用更復雜的防火墻規則和密鑰認證(而非密碼登錄)。

本賬號所有文章均為原創,歡迎轉載,請注明文章出處:https://shandianchengzi.blog.csdn.net/article/details/130776742。百度和各類采集站皆不可信,搜索請謹慎鑒別。技術類文章一般都有時效性,本人習慣不定期對自己的博文進行修正和更新,因此請訪問出處以查看本文的最新版本。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/71999.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/71999.shtml
英文地址,請注明出處:http://en.pswp.cn/web/71999.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C++多線程編程 3.互斥量、互斥鎖

目錄 1. 線程安全與互斥鎖(std::mutex) 2. 互斥量死鎖 3. std::lock_guard 4. std::unique_lock (1)示例 (2)詳細知識點 5. std::this_thread (1)sleep_for (2)sleep_until (3)yield (4)get_id 直接通過示例講解: 1. 線程安全與互…

【redis】hash基本命令和內部編碼

文章目錄 表示形式命令HSET 和 HGET HEXISTSHDELHKEYSHVALSHGETALLHMGETHLENHSETNXHINCRBYHINCRBYFLOAT命令小結內部編碼 表示形式 Redis 自身已經是鍵值對結構了 Redis 自身的鍵值對就是通過哈希的方式來組織的 把 key 這一層組織完成之后,到了 value 這一層&…

行為模式---策略模式

概念 策略模式是一種行為設計摸是,它的核心思想是將一些列的算法封裝成獨立的對象,并使它們可以相互替換,通過上下文進行調用。 策略模式通過算法抽象為獨立的策略類,客戶端可以根據自身需求選擇不同的策略類來完成任務、這種方…

Selenium 自動化測試學習總結

大概了解一下即可,現在主要用的自動化工具是 playWright,它可以錄制操作。 selenium是老款自動化測試工具,仍有很多可取之處。 安裝: pip install selenium即可。然后下載瀏覽器的驅動包,注意不是瀏覽器!…

四層協議攻防手冊:從SYN Flood到UDP反射的深度防御

一、四層協議攻擊類型與特征 攻擊類型協議層特征SYN FloodTCP大量半開連接,SYN_RECV狀態堆積UDP反射放大UDP小請求包觸發大響應(如NTP、DNS響應)TCP分片攻擊TCP發送異常分片耗盡重組資源連接耗盡攻擊TCP建立大量空閑連接占用端口資源 二、TC…

【社區投稿】深入再談智能指針、AsRef引用與Borrow借用

深入再談智能指針、AsRef引用與Borrow借用 這是一個具有深度的技術主題。每次重溫其理論知識&#xff0c;都會有新的領悟。大約 2 年前&#xff0c;我曾就這一技術方向撰寫過另一篇短文《從類型轉換視角&#xff0c;淺談Deref<Target T>, AsRef<T>, Borrow<T&g…

外層元素旋轉,其包括在內的子元素一并旋轉(不改變旋轉中心),單元測試

思路&#xff1a;外層旋轉后坐標&#xff0c;元素旋轉后坐標&#xff0c;計算偏移坐標 <template><div class"outbox"><label>角度: <input v-model.number"rotate" type"number" /></label><br><div c…

如何在虛擬機上安裝hadoop

與前面java的方式相同安裝好hadoop后進入hadoop的環境變量my_env.sh 輸入#?HADOOP_export HADOOP_HOME /opt/module/hadoop-3.1.3 export PATH$PATH:$HADOOP_HOME/bin export PATH$PATH:$HADOOP_HOME/sbin 再輸入hadoop測試是否安裝成功

WPF-DataGrid的增刪查改

背景&#xff1a;該功能為幾乎所有系統開發都需要使用的功能&#xff0c;現提供簡單的案例。 1、MyCommand using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Input;namespace Wp…

Oracle數據庫存儲結構--物理存儲結構

數據庫存儲結構&#xff1a;分為物理存儲結構和邏輯存儲結構。 物理存儲結構&#xff1a;操作系統層面如何組織和管理數據 邏輯存儲結構&#xff1a;Oracle數據庫內部數據組織和管理數據&#xff0c;數據庫管理系統層面如何組織和管理數據 存儲結構 在Oracle數據庫的存儲結構…

歌詞相關實現

歌詞相關 歌詞數據模型&#xff1a; // Lyric.swift class Lyric: BaseModel {/// 是否是精確到字的歌詞var isAccurate:Bool false/// 所有的歌詞var datum:Array<LyricLine>! }// LyricLine.swift class LyricLine: BaseModel {/// 整行歌詞var data:String!/// 開始…

紡織服裝制造行業現狀 內檢實驗室系統在紡織服裝制造行業的應用

在紡織服裝制造行業&#xff0c;內檢實驗室LIMS系統&#xff08;實驗室信息管理系統&#xff09;已成為提升檢測效率、優化質量控制和滿足行業合規性要求的關鍵工具。隨著行業競爭的加劇和消費者對產品質量要求的提高&#xff0c;紡織服裝制造企業需要更加高效、準確的檢測流程…

K8s 1.27.1 實戰系列(十一)ConfigMap

ConfigMap 是 Kubernetes 中管理非敏感配置的核心資源,通過解耦應用與配置實現靈活性和可維護性。 一、ConfigMap 的核心功能及優勢 ?1、配置解耦 將配置文件(如數據庫地址、日志級別)與容器鏡像分離,支持動態更新而無需重建鏡像。 ?2、多形式注入 ?環境變量:將鍵值…

3分鐘復現 Manus 超強開源項目 OpenManus

文章目錄 前言什么是 OpenManus構建方式環境準備克隆代碼倉庫安裝依賴配置 LLM API運行 OpenManus 效果演示總結個人簡介 前言 近期人工智能領域迎來了一位備受矚目的新星——Manus。Manus 能夠獨立執行復雜的現實任務&#xff0c;無需人工干預。由于限制原因大部分人無法體驗…

從零開始學機器學習——構建一個推薦web應用

首先給大家介紹一個很好用的學習地址:https://cloudstudio.net/columns 今天,我們終于將分類器這一章節學習完活了,和回歸一樣,最后一章節用來構建web應用程序,我們會回顧之前所學的知識點,并新增一個web應用用來讓模型和用戶交互。所以今天的主題是美食推薦。 美食推薦…

【最后203篇系列】014 AI機器人-1

說明 終于開張了&#xff0c;我覺得AI機器人是一件真正正確&#xff0c;具有商業價值的事。 把AI機器人當成一筆生意&#xff0c;我如何做好這筆生意&#xff1f;一端是業務價值&#xff0c;另一端是技術支撐。如何構造高質量的內容和服務&#xff0c;如何確保技術的廣度和深度…

【大模型統一集成項目】如何封裝多個大模型 API 調用

&#x1f31f; 在這系列文章中&#xff0c;我們將一起探索如何搭建一個支持大模型集成項目 NexLM 的開發過程&#xff0c;從 架構設計 到 代碼實戰&#xff0c;逐步搭建一個支持 多種大模型&#xff08;GPT-4、DeepSeek 等&#xff09; 的 一站式大模型集成與管理平臺&#xff…

AI4CODE】3 Trae 錘一個貪吃蛇的小游戲

【AI4CODE】目錄 【AI4CODE】1 Trae CN 錐安裝配置與遷移 【AI4CODE】2 Trae 錘一個 To-Do-List 這次還是采用 HTML/CSS/JAVASCRIPT 技術棧 Trae 錘一個貪吃蛇的小游戲。 1 環境準備 創建一個 Snake 的子文件夾&#xff0c;清除以前的會話記錄。 2 開始構建 2.1 輸入會…

【簡答題002】Java變量簡答題

博主會經常補充完善這里面問題的答案。希望可以得到大家的一鍵三連支持&#xff0c;你的鼓勵是我堅持下去的最大動力&#xff01;謝謝&#xff01; 001 什么是Java變量&#xff1f; Java變量是用來存儲數據并在程序中引用的命名空間。 002 Java變量有哪些類型&#xff1f; J…

從零開發Chrome廣告攔截插件:開發、打包到發布全攻略

從零開發Chrome廣告攔截插件&#xff1a;開發、打包到發布全攻略 想打造一個屬于自己的Chrome插件&#xff0c;既能攔截煩人的廣告&#xff0c;又能優雅地發布到Chrome Web Store&#xff1f;別擔心&#xff0c;這篇教程將帶你從零開始&#xff0c;動手開發一個功能強大且美觀…