【小白向】Ubuntu|VMware 新建虚拟机后打开 SSH 服务、在主机上安装vscode并连接、配置 git 的 ssh

embedded/2025/3/14 21:17:37/

常常有人问VMware-Tools装了也复制粘贴不了怎么办,这个东西影响因素太多了,具体解决办法你们可以参考一下:【经验】VMware|虚拟机只能使用鼠标无法使用键盘、装不了或装了VMware-Tools无法复制粘贴的可能解决办法_增强型键盘驱动程序-CSDN博客。

但我最终总是建议直接用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.ppmy.cn/embedded/172577.html

相关文章

初次体验Tauri和Sycamore(3)通道实现

​ 原创作者:庄晓立(LIIGO) 原创时间:2025年03月10日(发布时间) 原创链接:https://blog.csdn.net/liigo/article/details/146159327 版权所有,转载请注明出处。 20250310 LIIGO备注&…

使用自动导入后,eslint报错 eslint9

前提:使用pnpm create vuelatest创建vue应用,并且在创建项目时就勾选eslint和prettier,不然有些配置还需要手动配,比如解决eslint和prettier的冲突问题 1. 解决使用自动导入后Eslint报错问题 配置vite.config.ts // 自动导入api…

排序算法——归并排序(三)

文章目录 一、实现思路二、代码实现三、复杂度分析总结 一、实现思路 归并排序是使用分治思想解决问题的典型算法,对于一个庞大的乱序数组我们很难针对整体对其进行排序,但是对于微小的数组却很容易对其进行排序,有了数个有序的小数组&#…

国产编辑器EverEdit - 脚本(解锁文本编辑的无限可能)

1 脚本 1.1 应用场景 脚本是一种功能扩展代码,用于提供一些编辑器通用功能提供不了的功能,帮助用户在特定工作场景下提高工作效率,几乎所有主流的编辑器、IDE都支持脚本。   EverEdit的脚本支持js(语法与javascript类似)、VBScript两种编程…

Git Fast-forward 合并详解:原理、场景与最佳实践

在使用 Git 进行团队协作时,我们经常需要合并分支。合并方式有很多种,其中 Fast-forward(快速合并) 是一种最简单且无冲突的合并方式。本文将详细介绍 Fast-forward 的原理、适用场景、常见问题及最佳实践。 一、Fast-forward 合并…

Python 进程与线程-分布式进程

目录 分布式进程 小结 分布式进程 在Thread和Process中,应当优选Process,因为Process更稳定,而且,Process可以分布到多台机器上,而Thread最多只能分布到同一台机器的多个CPU上。 Python的multiprocessing模块不但支…

CUDA编程之OpenCV与CUDA结合使用

OpenCV与CUDA的结合使用可显著提升图像处理性能。 一、版本匹配与环境配置 CUDA与OpenCV版本兼容性‌ OpenCV各版本对CUDA的支持存在差异,例如OpenCV 4.5.4需搭配CUDA 10.0‌2,而较新的OpenCV 4.8.0需使用更高版本CUDA‌。 需注意部分模块(…

文件上传复现

漏洞原理与技术演进 ​核心逻辑缺陷 未对上传文件的以下属性进行校验: 文件扩展名(.php/.jsp/.asp)MIME类型(image/jpeg vs text/html)文件头标识(FFD8FF vs 3C3F706870)文件内容(是…