VSCode通过SSH远程登录Ubuntu假造机

曂沅仴駦  金牌会员 | 2024-7-24 05:48:32 | 来自手机 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 858|帖子 858|积分 2574

简介

嵌入式开发中常用Linux系统和交织编译工具链进行开发。常见的做法是使用Linux(假造机或服务器)进行交织编译,使用Windows毗连嵌入式主机进行调试。为了完成交织编译,Windows可以使用VSCode的Remote - SSH插件进行远程毗连,既可方便地使用Linux的终端,也可方便地在VSCode中编辑代码。
以下是在Ubuntu桌面版假造机中安装SSH服务器,并在Windows通过VSCode SSH远程登录的步调。
1. 在假造机安装SSH

下载SSH



  • 在Ubuntu中打开终端
  • 运行以下下令1下载安装SSH。
  1. sudo apt update
  2. sudo apt install openssh-server
复制代码


  • 期待安装完成后,运行以下下令查看SSH服务的状态。
  1. sudo systemctl status ssh
复制代码


  • 输出active (running)表明成功安装且主动运行了。
  1. ● ssh.service - OpenBSD Secure Shell server
  2.      Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
  3.      Active: active (running) since Thu 2024-04-04 02:21:09 CST; 12h ago
  4.        Docs: man:sshd(8)
  5.              man:sshd_config(5)
  6.    Main PID: 36845 (sshd)
  7.       Tasks: 1 (limit: 4595)
  8.      Memory: 5.5M
  9.         CPU: 114ms
  10.      CGroup: /system.slice/ssh.service
  11.              └─36845 "sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups"
复制代码


  • 若SSH服务关闭了,则通过以下下令打开
  1. sudo systemctl enable ssh
复制代码
设置防火墙



  • 留意,Ubuntu系统可能默认启动了防火墙,必要在防火墙中打开SSH服务的端口,或者关闭防火墙。

    • 在防火墙中打开SSH服务端口
       

    • 查看防火墙中SSH服务的名字。
    1. sudo ufw app list
    复制代码
      

    • 其中OpenSSH是SSH服务的名字。
    1. Available applications:
    2. OpenSSH
    3. Samba
    复制代码
      

    • 开启SSH服务端口。
    1. sudo ufw allow 'OpenSSH'
    复制代码
      

    • 关闭防火墙
    1. sudo ufw disable
    复制代码

  • 现在Ubuntu的SSH服务准备就绪。
2. 远程登录Ubuntu

使用Windows系统下令行登录



  • 运行以下下令获取Ubuntu假造机的IP地址,以本地局域网为例。
  1. ifconfig
复制代码


  • 从输出可见本地网络IP地址为192.168.28.128。
  1. ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
  2.         inet 192.168.28.128  netmask 255.255.255.0  broadcast 192.168.28.255
  3.         inet6 fe80::a3b1:93cc:e689:e515  prefixlen 64  scopeid 0x20<link>
  4.         ether 00:08:29:eb:0d:c6  txqueuelen 1000  (Ethernet)
  5.         RX packets 1212406  bytes 1755611771 (1.7 GB)
  6.         RX errors 0  dropped 0  overruns 0  frame 0
  7.         TX packets 246724  bytes 29298116 (29.2 MB)
  8.         TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
复制代码


  • 打开Windows终端,通过ssh username@ip_address下令发起远程毗连。

    • username是Ubuntu系统的用户名
    • ip_address是上一步获取的IP地址。

  • 此处以我的用户为例,运行以下下令。
  1. ssh fenst@192.168.28.128
复制代码


  • 输入用户密码后,即可成功登录。
  1. fenst@192.168.28.128's password:
  2. *** System restart required ***
  3. Last login: Thu Apr  4 16:31:39 2024 from 192.168.28.1
  4. fenst@fenst-virtual-machine:~$
复制代码


  • 到这一步阐明SSH服务可以正常使用。
3. 使用SSH公钥免输密码登录

在假造机创建公钥文件夹



  • 在上一步毗连到假造机的终端中,运行以下下令天生存放公钥的文件夹。
  1. mkdir ~/.ssh
复制代码
天生公钥



  • 退出远程终端
  1. exit
复制代码


  • 使用自己的邮箱,运行以下下令天生公钥
  1. ssh-keygen -t rsa
复制代码


  • 过程中按回车使用默认值即可,不必要填写密码。天生的公钥文件在系统的用户目次下(C:\Users\93636/.ssh/id_rsa)。
  1. Generating public/private rsa key pair.
  2. Enter file in which to save the key (C:\Users\93636/.ssh/id_rsa):
  3. Enter passphrase (empty for no passphrase):
  4. Enter same passphrase again:
  5. Your identification has been saved in C:\Users\93636/.ssh/id_rsa.
  6. Your public key has been saved in C:\Users\93636/.ssh/id_rsa.pub.
复制代码


  • 将刚才天生的公钥文件上传到假造机。
  1. scp C:\Users\93636\.ssh\id_rsa.pub fenst@192.168.28.128:~/.ssh/authorized_keys
复制代码


  • 输入Ubuntu用户密码即可上传成功。
  1. fenst@192.168.28.128's password:
  2. id_rsa.pub                                                                            100%  576   498.7KB/s   00:00
复制代码


  • 通过ssh username@ip_address下令可验证,是否不必要输入密码即可登录。
4. 设置VSCode

安装Remote - SSH插件



  • 打开VSCode,搜索并安装插件。

  • 在远程组件中选择SSH。

设置VSCode远程情况



  • 点击小齿轮进行远程设置。

  • 选择设置文件的路径。

  • 将文件内容改为你自己的远程情况参数。


    • Host是远程毗连的名字
    • HostName是假造机的IP地址
    • User是Ubuntu系统用户名
    • IdentityFile是刚才天生的公钥文件。

  1. Host fenst
  2.     HostName 192.168.28.128
  3.     User fenst
  4.     IdentityFile "C:/Users/93636/.ssh/id_rsa"
复制代码


  • 完成设置后,点击小箭头进行远程毗连。

  • 至此完成SSH远程设置,VSCode可以像在Ubuntu中一样在Windows中使用。在VSCode中,你可以直接打开Ubuntu中的文件夹进行编辑,也可以打开终端实行Ubuntu的下令。
  • 缺点:每次毗连时,VSCode都会同步Ubuntu和Windows的SSH插件版本,所以偶然毗连时间会稍微长一点。

   

  • sudo下令必要输入用户密码以获取权限。 ↩︎

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

曂沅仴駦

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表