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

电脑天天看天 2024-07-23 12:07:02 阅读 86

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

简介1. 在虚拟机安装SSH下载SSH配置防火墙

2. 远程登录Ubuntu使用Windows系统命令行登录

3. 使用SSH公钥免输密码登录在虚拟机创建公钥文件夹生成公钥

4. 配置VSCode安装`Remote - SSH`插件配置VSCode远程环境

简介

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

<code>sudo ufw app list

其中OpenSSH是SSH服务的名字。

Available applications:

OpenSSH

Samba

开启SSH服务端口。

sudo ufw allow 'OpenSSH'

关闭防火墙

<code>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 fenst@192.168.28.128

输入用户密码后,即可成功登录。

fenst@192.168.28.128'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 fenst@192.168.28.128:~/.ssh/authorized_keys

输入Ubuntu用户密码即可上传成功。

fenst@192.168.28.128'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远程配置文件

<code>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插件版本,所以有时连接时间会稍微长一点。


<code>sudo命令需要输入用户密码以获取权限。 ↩︎



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。