【经验】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.mzph.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;动手开发一个功能强大且美观…