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,搜索并安装插件。
在远程组件中选择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插件版本,所以有时连接时间会稍微长一点。
声明
本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。