0


VSCode通过SSH远程登录Ubuntu虚拟机

VSCode通过SSH远程登录Ubuntu虚拟机

  • 简介
    1. 在虚拟机安装SSH
    • 下载SSH- 配置防火墙
    1. 远程登录Ubuntu
    • 使用Windows系统命令行登录
    1. 使用SSH公钥免输密码登录
    • 在虚拟机创建公钥文件夹- 生成公钥
    1. 配置VSCode
    • 安装Remote - SSH插件- 配置VSCode远程环境

简介

嵌入式开发中常用Linux系统和交叉编译工具链进行开发。常见的做法是使用Linux(虚拟机或服务器)进行交叉编译,使用Windows连接嵌入式主机进行调试。为了完成交叉编译,Windows可以使用VSCode

Remote - SSH

插件进行远程连接,既可方便地使用Linux的终端,也可方便地在VSCode中编辑代码。

以下是在Ubuntu桌面版虚拟机中安装SSH服务器,并在Windows通过VSCode SSH远程登录的步骤。

1. 在虚拟机安装SSH

下载SSH

  • 在Ubuntu中打开终端
  • 运行以下命令1下载安装SSH。
sudo apt update
sudo apt install openssh-server
  • 等待安装完成后,运行以下命令查看SSH服务的状态。
sudo systemctl status ssh
  • 输出active (running)表明成功安装且自动运行了。
● ssh.service - OpenBSD Secure Shell server
     Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
     Active: active (running) since Thu 2024-04-04 02:21:09 CST; 12h ago
       Docs: man:sshd(8)
             man:sshd_config(5)
   Main PID: 36845 (sshd)
      Tasks: 1 (limit: 4595)
     Memory: 5.5M
        CPU: 114ms
     CGroup: /system.slice/ssh.service
             └─36845 "sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups"
  • 若SSH服务关闭了,则通过以下命令打开
sudo systemctl enable ssh

配置防火墙

  • 注意,Ubuntu系统可能默认启动了防火墙,需要在防火墙中打开SSH服务的端口,或者关闭防火墙。 - 在防火墙中打开SSH服务端口- 查看防火墙中SSH服务的名字。sudo ufw app list- 其中OpenSSH是SSH服务的名字。Available applications:OpenSSHSamba- 开启SSH服务端口。sudo ufw allow 'OpenSSH'- 关闭防火墙sudo ufw disable
  • 目前Ubuntu的SSH服务准备就绪。

2. 远程登录Ubuntu

使用Windows系统命令行登录

  • 运行以下命令获取Ubuntu虚拟机的IP地址,以本地局域网为例。
ifconfig
  • 从输出可见本地网络IP地址为192.168.28.128
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.28.128  netmask 255.255.255.0  broadcast 192.168.28.255
        inet6 fe80::a3b1:93cc:e689:e515  prefixlen 64  scopeid 0x20<link>
        ether 00:08:29:eb:0d:c6  txqueuelen 1000  (Ethernet)
        RX packets 1212406  bytes 1755611771 (1.7 GB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 246724  bytes 29298116 (29.2 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
  • 打开Windows终端,通过ssh username@ip_address命令发起远程连接。 - username是Ubuntu系统的用户名- ip_address是上一步获取的IP地址。
  • 此处以我的用户为例,运行以下命令。
ssh [email protected]
  • 输入用户密码后,即可成功登录。
[email protected]'s password:
*** System restart required ***
Last login: Thu Apr  4 16:31:39 2024 from 192.168.28.1
fenst@fenst-virtual-machine:~$
  • 到这一步说明SSH服务可以正常使用。

3. 使用SSH公钥免输密码登录

在虚拟机创建公钥文件夹

  • 在上一步连接到虚拟机的终端中,运行以下命令生成存放公钥的文件夹。
mkdir ~/.ssh

生成公钥

  • 退出远程终端
exit
  • 使用自己的邮箱,运行以下命令生成公钥
ssh-keygen -t rsa
  • 过程中按回车使用默认值即可,不需要填写密码。生成的公钥文件在系统的用户目录下(C:\Users\93636/.ssh/id_rsa)。
Generating public/private rsa key pair.
Enter file in which to save the key (C:\Users\93636/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in C:\Users\93636/.ssh/id_rsa.
Your public key has been saved in C:\Users\93636/.ssh/id_rsa.pub.
  • 将刚才生成的公钥文件上传到虚拟机。
scp C:\Users\93636\.ssh\id_rsa.pub [email protected]:~/.ssh/authorized_keys
  • 输入Ubuntu用户密码即可上传成功。
[email protected]'s password:
id_rsa.pub                                                                            100%  576   498.7KB/s   00:00
  • 通过ssh username@ip_address命令可验证,是否不需要输入密码即可登录。

4. 配置VSCode

安装

Remote - SSH

插件

  • 打开VSCode,搜索并安装插件。搜索Remote - SSH插件
  • 在远程组件中选择SSH。切换到SSH组件

配置VSCode远程环境

  • 点击小齿轮进行远程配置。进行SSH配置
  • 选择配置文件的路径。选择公钥文件
  • 将文件内容改为你自己的远程环境参数。VSCode远程配置文件- Host是远程连接的名字- HostName是虚拟机的IP地址- User是Ubuntu系统用户名- IdentityFile是刚才生成的公钥文件。
Host fenst
    HostName 192.168.28.128
    User fenst
    IdentityFile "C:/Users/93636/.ssh/id_rsa"
  • 完成配置后,点击小箭头进行远程连接。建立远程连接
  • 至此完成SSH远程配置,VSCode可以像在Ubuntu中一样在Windows中使用。在VSCode中,你可以直接打开Ubuntu中的文件夹进行编辑,也可以打开终端执行Ubuntu的命令。
  • 缺点:每次连接时,VSCode都会同步Ubuntu和Windows的SSH插件版本,所以有时连接时间会稍微长一点。

  1. sudo命令需要输入用户密码以获取权限。 ↩︎
标签: vscode ssh ubuntu

本文转载自: https://blog.csdn.net/fenst/article/details/137374375
版权归原作者 电脑天天看天 所有, 如有侵权,请联系我们删除。

“VSCode通过SSH远程登录Ubuntu虚拟机”的评论:

还没有评论