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

常常有人问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.mzph.cn/diannao/73270.shtml

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

相关文章

mingw工具源码编译

ming-w64 mingw编译生成的库,需要mingw的lib文件支持。 https://github.com/mingw-w64/mingw-w64 使用msys2的bash git checkout v8.0.3 ./configure --disable-dependency-tracking --targetx86_64-w64-mingw32 mingw32-make.exe -j4 修改makefile中的make 改成mi…

LSTM方法实践——基于LSTM的汽车销量时序建模与预测分析

Hi,大家好,我是半亩花海。本实验基于汽车销量时序数据,使用LSTM网络(长短期记忆网络)构建时间序列预测模型。通过数据预处理、模型训练与评估等完整流程,验证LSTM在短期时序预测中的有效性。 目录 一、实验…

Stable Diffusion教程|快速入门SD绘画原理与安装

什么是Stable Diffusion,什么是炼丹师?根据市场研究机构预测,到2025年全球AI绘画市场规模将达到100亿美元,其中Stable Diffusion(简称SD)作为一种先进的图像生成技术之一,市场份额也在不断增长&…

Webpack构建流程详解优化前端性能\Dev-Server与Proxy\网络攻击\HMR

简版 核心流程图 根据,Webpack的构建流程分为初始化、编译和输出三个阶段。初始化阶段读取配置、加载插件、实例化Compiler。编译阶段(构建依赖关系)涉及Compiler类的运行,生成Compilation对象,处理模块依赖。输出阶…

《Transformer如何进行图像分类:从新手到入门》

引言 如果你对人工智能(AI)或深度学习(Deep Learning)感兴趣,可能听说过“Transformer”这个词。它最初在自然语言处理(NLP)领域大放异彩,比如在翻译、聊天机器人和文本生成中表现出…

Java --- 根据身份证号计算年龄

介绍 根据身份证号计算年龄 Java代码 /*** 根据身份证号计算年龄* param birthDateStr* return*/public static int calculateAge(String birthDateStr) {try {birthDateStrbirthDateStr.substring(6,68);// 定义日期格式SimpleDateFormat sdf new SimpleDateFormat("…

零成本搭建Calibre个人数字图书馆支持EPUB MOBI格式远程直读

文章目录 前言1.网络书库软件下载安装2.网络书库服务器设置3.内网穿透工具设置4.公网使用kindle访问内网私人书库 前言 嘿,各位书虫们!今天要给大家安利一个超级炫酷的技能——如何在本地Windows电脑上搭建自己的私人云端书库。亚马逊服务停了&#xff…

【Linux 指北】常用 Linux 指令汇总

第一章、常用基本指令 # 注意: # #表示管理员 # $表示普通用户 [rootlocalhost Practice]# 说明此处表示管理员01. ls 指令 语法: ls [选项][目录或文件] 功能:对于目录,该命令列出该目录下的所有子目录与文件。对于文件&#xf…

跟踪napi_gro_receive_entry时IP头信息缺失的分析

问题描述 在使用eBPF程序跟踪napi_gro_receive_entry内核跟踪点时,发现获取到的IP头部字段(如saddr、daddr、protocol)为空值。 代码如下: /* 自定义结构体来映射 napi_gro_receive_entry tracepoint 的 format */ struct napi…

Android子线程更新View的方法原理

对于所有的Android开发者来说,“View的更新必须在UI线程中进行”是一项最基本常识。 如果不在UI线程中更新View,系统会抛出CalledFromWrongThreadException异常。那么有没有什么办法可以不在UI线程中更新View?答案当然是有的! 一…

【Manus资料合集】激活码内测渠道+《Manus Al:Agent应用的ChatGPT时刻》(附资源)

DeepSeek 之后,又一个AI沸腾,冲击的不仅仅是通用大模型。 ——全球首款通用AI Agent的破圈启示录 2025年3月6日凌晨,全球AI圈被一款名为Manus的产品彻底点燃。由Monica团队(隶属中国夜莺科技)推出的“全球首款通用AI…

Python----计算机视觉处理(opencv:像素,RGB颜色,图像的存储,opencv安装,代码展示)

一、计算机眼中的图像 像素 像素是图像的基本单元,每个像素存储着图像的颜色、亮度和其他特征。一系列像素组合到一起就形成 了完整的图像,在计算机中,图像以像素的形式存在并采用二进制格式进行存储。根据图像的颜色不 同,每个像…

SQLiteStudio:一款免费跨平台的SQLite管理工具

SQLiteStudio 是一款专门用于管理和操作 SQLite 数据库的免费工具。它提供直观的图形化界面,简化了数据库的创建、编辑、查询和维护,适合数据库开发者和数据分析师使用。 功能特性 SQLiteStudio 提供的主要功能包括: 免费开源,可…

【软考网工-实践篇】DHCP 动态主机配置协议

一、DHCP简介 DHCP,Dynamic Host Configuration Protocol,动态主机配置协议。 位置:DHCP常见运行于路由器上,作为DHCP服务器功能:用于自动分配IP地址及其他网络参数给网络中的设备作用:简化网络管理&…

【Linux学习笔记】Linux用户和文件权限的深度剖析

【Linux学习笔记】Linux用户和文件权限的深度剖析 🔥个人主页:大白的编程日记 🔥专栏:Linux学习笔记 前言 文章目录 【Linux学习笔记】Linux用户和文件权限的深度剖析前言一. Linux权限管理1.1 文件访问者的分类(人)…

Centos离线安装openssl-devel

文章目录 Centos离线安装openssl-devel1. openssl-devel是什么?2. openssl-devel下载地址3. openssl-devel安装4. 安装结果验证 Centos离线安装openssl-devel 1. openssl-devel是什么? openssl-devel 是 Linux 系统中与 OpenSSL 加密库相关的开发包&…

深度学习篇---Opencv中Haar级联分类器的自定义

文章目录 1. 准备工作1.1安装 OpenCV1.2准备数据集1.2.1正样本1.2.2负样本 2. 数据准备2.1 正样本的准备2.1.1步骤2.1.2生成正样本描述文件2.1.3示例命令2.1.4正样本描述文件格式 2.2 负样本的准备2.2.1步骤2.2.2负样本描述文件格式 3. 训练分类器3.1命令格式3.2参数说明 4. 训…

Smart Time Plus smarttimeplus-MySQLConnection SQL注入漏洞(CVE-2024-53544)

免责声明 本文所描述的漏洞及其复现步骤仅供网络安全研究与教育目的使用。任何人不得将本文提供的信息用于非法目的或未经授权的系统测试。作者不对任何由于使用本文信息而导致的直接或间接损害承担责任。如涉及侵权,请及时与我们联系,我们将尽快处理并删除相关内容。 0x01…

58.Harmonyos NEXT 图片预览组件架构设计与实现原理

温馨提示:本篇博客的详细代码已发布到 git : https://gitcode.com/nutpi/HarmonyosNext 可以下载运行哦! Harmonyos NEXT 图片预览组件架构设计与实现原理 文章目录 Harmonyos NEXT 图片预览组件架构设计与实现原理效果预览一、组件架构概述1. 核心组件层…

虚拟机下ubuntu进不了图形界面

6.844618] piix4_smbus 0000:07.3: SMBus Host ContrFoller not enabled! 7.859836] sd 2:0:0:0:0: [sda] Assuming drive cache: wirite through /dev/sda1: clean, 200424/1966080 files, 4053235/7864064 blocks ubuntu启动时,卡在上面输出位置 当前遇到的原因…