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

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

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

简介

嵌入式开发中常用Linux系统和交叉编译工具链进行开发。常见的做法是使用Linux(虚拟机或服务器)进行交叉编译,使用Windows连接嵌入式主机进行调试。为了完成交叉编译,Windows可以使用VSCodeRemote - 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:
    OpenSSH
    Samba
    
    • 开启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 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远程配置文件
    • 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命令需要输入用户密码以获取权限。 ↩︎

  • 14
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值