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

news2025/3/15 4:59:23

常常有人问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.coloradmin.cn/o/2315237.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

bootloader相关部分

简单说明 程序烧录的方式主要有ICP,ISP,IAP 其中ICP就是常用的jlink等工具 ISP就是利用MCU自带的一些特殊引脚烧录,比如uart IAP就是利用用户写的bootloader代码烧录 bootloader主要分为三层,厂家出厂的bootrom ,用户自己写的bootloader,…

AI+视频监控电力巡检:EasyCVR视频中台方案如何赋能电力行业智能化转型

随着电力行业的快速发展,电力设施的安全性、稳定性和运维效率变得至关重要。传统视频监控系统在实时性、智能化及多系统协同等方面面临严峻挑战。EasyCVR视频中台解决方案作为一种先进的技术手段,在电力行业中得到了广泛应用,为电力设施的监控…

C++从入门到入土(七)——多态

目录 前言 多态的概念 多态的定义 虚函数的介绍 虚函数的重写/覆盖 析构函数的重写 override和final关键字 纯虚函数和抽象类 重写/重载/隐藏总结 多态的原理 小结 前言 C一共有三个特性,封装、继承和多态,在前面的文章中,我们分别…

新闻网页信息抽取

1. 网页信息抽取 问题定义:对新闻网页(输入为HTML)提取结构化信息,包括标题、发布时间、作者、正文、图片等。 动机:由于网页(大多数为HTML格式)通常带有很多标签、样式、脚本等信息&#xff0…

Docker 部署Spring boot + Vue(若依为例)

首先我们要在docker中安装好环境镜像 jdk. mysql. redis. nginx 镜像安装我们在上一篇文章中已说明,请大家自行查看。 下面我介绍部署步骤 部署后台jar 在你的工作目录下新建application 用来存放后台jar包 1.将打好的jar包上传 2.编写Dockerfile文件&#…

PDF文件里到底有什么?

PDF 文档结构由多个组件组成,这些组件决定了文本、图像和其他元素的存储和显示方式。PDF 是一种二进制文件格式,这意味着您无法在文本编辑器中直接编辑 PDF 文件。添加或删除一个字符都可能导致整个文件损坏! PDF 文件结构 理解 PDF 文档结…

FANUC机器人几种常用的通讯网络及接口

FANUC机器人几种常用的通讯网络及接口 Devicenet 网络通讯接口,接口为5针线 (规定用的机架为 81-84) PROFIBUS 网络通讯接口,针脚为2针(规定用的机架为 67) Intemet 网络通讯接口(常用的网线接口&#xf…

实用插件分享:@plugin-web-update-notification/vite 的使用指南

实用插件分享:plugin-web-update-notification/vite 的使用指南 在前端开发的过程中,及时告知用户网页有更新是提升用户体验的一个重要方面。plugin-web-update-notification/vite 就是一款能够轻松实现网页更新通知功能的插件,下面就来详细…

IEC61850标准下MMS 缓存报告控制块 ResvTms详细解析

IEC61850标准是电力系统自动化领域唯一的全球通用标准。IEC61850通过标准的实现,使得智能变电站的工程实施变得规范、统一和透明,这大大提高了变电站自动化系统的技术水平和安全稳定运行水平。 在 IEC61850 标准体系中,ResvTms(r…

人工智能与人的智能,思维模型分享【2】沉没成本

**沉没成本(Sunk Cost)** 是指已经发生且无法收回的成本(时间、金钱、精力等)。沉没成本思维模型的核心原则是:理性决策应基于未来可能的收益与成本,而非被已经无法改变的历史投入所影响。陷入沉没成本陷阱…

艾尔登复刻Ep1——客户端制作、场景切换、网络控制

需要添加的插件内容 Netcode for GameObjects:是一个为 Unity 游戏开发提供高级网络功能的 SDK。它的主要作用是允许开发者在其 GameObject 和 MonoBehaviour 工作流中集成网络功能,并且可以与多种底层传输层协议兼容。 具体内容请看:https:…

基于YOLO11深度学习的遥感视角地面房屋建筑检测分割与分析系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战、目标分割、人工智能

《------往期经典推荐------》 一、AI应用软件开发实战专栏【链接】 项目名称项目名称1.【人脸识别与管理系统开发】2.【车牌识别与自动收费管理系统开发】3.【手势识别系统开发】4.【人脸面部活体检测系统开发】5.【图片风格快速迁移软件开发】6.【人脸表表情识别系统】7.【…

Java中常见的PO、VO、DAO、BO、DO、DTO、POJO、Query类解释(通俗易懂)

文章目录 先点击收藏和点赞,切勿白嫖,感谢一丶PO(persistant object)持久对象二丶VO(value object)值对象三丶DAO(Data Access Objects) 数据访问对象接口四丶BO/DO(Business Object) 业务对象层五丶DTO(Data Transfer Object) 数据传输对象六丶POJO(Plain Old Java Objects) 简…

完美解决ElementUI中树形结构table勾选问题

完美解决ElementUI中树形结构table勾选问题 实现功能效果图全选取消全选取消父节点取消某个子节点 关键代码 实现功能 1. 全选/取消全选,更新所有节点勾选状态 2. 勾选父/子节点,子/父节点状态和全选框状态更新 效果图 全选 取消全选 取消父节点 取消某…

文件解析漏洞靶场集锦详解

一、IIS解析漏洞 环境安装&#xff1a;windows2003iis6 1.目录解析 .asp文件夹中的任意文件都会被当做asp文件去执行 1.在iis6的网站根目录新建⼀个名为1.asp的文件 2. 在1.asp中新建⼀个jpg文件。内容为 <%now()%>asp代码 3.在外部浏览器中访问iis⽹站中的1.jpg 发现…

hcia华为路由器静态路由实验配置

目录 一、网络拓扑分析 二、华为路由器配置&#xff08;分设备&#xff09; 1. R1 配置 2. R2 配置 3. R3 配置 三、验证测试 拓扑图 一、网络拓扑分析 IP 地址规划&#xff1a; R1&#xff1a;E0/0/0&#xff08;12.1.1.1/24&#xff09;、E0/0/1&#xff08;192.168.1.…

Redis7——进阶篇(五)

前言&#xff1a;此篇文章系本人学习过程中记录下来的笔记&#xff0c;里面难免会有不少欠缺的地方&#xff0c;诚心期待大家多多给予指教。 基础篇&#xff1a; Redis&#xff08;一&#xff09;Redis&#xff08;二&#xff09;Redis&#xff08;三&#xff09;Redis&#x…

VBA+FreePic2Pdf 找出没有放入PDF组合的单个PDF工艺文件

设计部门针对某个项目做了一个工艺汇总报告&#xff0c;原先只要几十个工艺文件&#xff0c;组合成一个PDF&#xff0c;但后来要求要多放点PDF进去&#xff0c;但工艺文件都混在一起又不知道哪些是重复的&#xff0c;找上我让我帮忙处理一下&#xff0c;我开始建议让她重新再组…

计网面试准备

正确理解网络数据传输过程 同一路由器的不同接口属于不同局域网&#xff0c;广播只能在同一个局域网

【数据分享】1999—2023年我国地级市社会消费品零售总额和年末金融机构存贷款余额(Shp/Excel格式)

在之前的文章中&#xff0c;我们分享过基于2000-2024年《中国城市统计年鉴》整理的1999-2023年地级市的人口相关数据、染物排放和环境治理相关数据和房地产投资情况和商品房销售面积相关指标数据&#xff08;均可查看之前的文章获悉详情&#xff09;&#xff01; 本次我们分享…