102_VScode连接远程服务器进行代码调试

使用本地 vscode + Remote Development/Remote-SSH 插件 + 远程 vscode-server 搭建一个远程开发环境,将代码可视化放到本地,无需再借助 VNC。

这样以后在外网也可以使用windows笔记本开心的进行代码调试了。

VSCode 的 Remote 功能由三个插件组成,分别实现三种不同场景的远程开发:

Remote - SSH:利用 SSH 连接远程主机进行开发。
Remote - Container:连接当前机器上的容器进行开发。
Remote - WSL:在Windows 10上,连接子系统(Windows Subsystem for Linux)进行开发

主要的配置分为远程服务器和本地主机两部分。

一、远程主机的准备工作

  1. 安装ssh服务,看下面代码是否有sshd
sudo ps -e |grep ssh
#远程主机肯定有个root密码:sudo passwd root

没有sshd进程的话使用如下代码安装启动

sudo apt -y install openssh-server
sudo service ssh start

配置ssh开机启动

# 开机自动启动ssh命令
sudo systemctl enable ssh
 
# 关闭ssh开机自动启动命令
sudo systemctl disable ssh
 
# 单次开启ssh
sudo systemctl start ssh
 
# 单次关闭ssh
sudo systemctl stop ssh
 
# 设置好后重启系统
reboot
 
#查看ssh是否启动,看到Active: active (running)即表示成功
sudo systemctl status ssh

#其他方法
sudo vi /etc/ssh/sshd_config
#在行"#PermitRootLogin prohibit-password"后添加行"PermitRootLogin yes"
#开启ssh服务开机自启动
sudo update-rc.d ssh defaults
  1. 安装部署vscode-server
    在下面目录下查看远程服务器是否已经安装了vscode-server
#一般在根目录,查看该目录下的bin文件是否都存在
7060:cd ~/.vscode-server
#查看文件
7060:~/.vscode-server$ ls -al
total 52
drwxrwxr-x  5 mi mi  4096 531 14:45 .
drwxr-xr-x 41 mi mi  4096 531 14:45 ..
-rw-rw-r--  1 mi mi 17025 531 16:07 .b3e4e68a0bc097f0ae7907b217c1119af9e03435.log
-rw-rw-r--  1 mi mi     7 531 14:45 .b3e4e68a0bc097f0ae7907b217c1119af9e03435.pid
-rwx------  1 mi mi    37 531 14:45 .b3e4e68a0bc097f0ae7907b217c1119af9e03435.token
drwxrwxr-x  3 mi mi  4096 531 14:45 bin
drwx------  7 mi mi  4096 531 16:07 data
drwx------  3 mi mi  4096 531 16:07 extensions

一般来说第一个通过笔记本vscode的Remote-SSH插件连接服务器成功后应该自动会在服务器上安装此服务的,如果没有就参考使用 vscode + Remote-SSH 插件 + vscode-server 进行远程开发

简述关键流程:

#1.根据本地机器的vscode的about信息获取对应版本号的commitid
#2.然后在替换id下载对应的vscode-server
https://update.code.visualstudio.com/commit:commit_id/server-linux-x64/stable
#3.登陆远程服务器,在 ~ 目录下创建 .vscode-server/bin
mkdir -p ~/.vscode-server/bin
#4.将下载得到的 vscode-server-linux-x64.tar.gz 文件上传至上述新建的 ~/.vscode-server/bin 目录
scp vscode-server-linux-x64.tar.gz user_name@server_ip:~/.vscode-server/bin
#5.登陆远程服务器,解压 vscode-server-linux-x64.tar.gz
cd ~/.vscode-server/bin
tar -zxvf vscode-server-linux-x64.tar.gz
#6.解压后将在 ~/.vscode-server/bin 目录下生成 vscode-server-linux-x64 目录,将其改名为上文中得到的 vscode 的 commit id,并删除 vscode-server-linux-x64.tar.gz
mv vscode-server-linux-x64 e18005f0f1b33c29e81d732535d8c0e47cafb0b5
rm vscode-server-linux-x64.tar.gz
#7.在这个以 vscode commit id 命名的目录中创建名为 0 的文件
cd ~/.vscode-server/bin/e18005f0f1b33c29e81d732535d8c0e47cafb0b5
touch 0

vscode-server 完成部署后是不包含任何扩展的,可将其它已安装有 vscode 的 Ubuntu 机器的 ~/.vscode 目录下的 extensions 目录放到上文中创建的远程服务器的 ~/.vscode-server 目录下,实现扩展离线安装,或通过下文提到的方法直接将本地扩展全部或部分在线安装到远程服务器。

二、本地电脑的配置

  1. 安装 SSH(Git 自带,最好直接安装 Git version)

  2. 查看是否可以连接到远端的电脑

ssh 用户名@服务器IP地址
#如下输入如下命令后会连接远端的服务器,输入密码后若是能够成功,那么就开始进行操作
#服务器一般只能通过内网连接,如果pc没有连接内网,需要先登录能通过公网访问的跳板机,在连接到服务器
ssh 用户名@服务器IP地址 -p 端口号 -J 跳板机用户名和跳板机ip
ssh [email protected] -p 22 -J [email protected]
  1. 在VS官网下载VS Code的软件,然后安装插件Remote Development 套件(包含remote-ssh)
  2. 然后重启VS便界面便有了Remote Explorer插件(远程资源管理器),点ssh旁边的设置按钮,选择配置文件保存位置,一般选择:C:\Users\用户名.ssh\config
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-O6wHu0j6-1685525907704)(./pic/sshTargets.png)]
  3. 在配置文件中设置服务器信息,输入 HostName 服务器IP地址和 User 服务器用户名,保存以后左侧会出现对应机器名称
Host 机器名称,可以任意
    HostName IP地址
    Port 端口号(不加Port,则端口号默认为22)
    User 服务器登录用户名
    IdentityFile "C:\Users\12646\.ssh\id_rsa" #本地的id_rsa的路径(如果配置了免密登录才需要)

想每次打开远程服务器时显示终端的话可以更改设置,File->Preferences->Settings->Extension->Remote-SSH,找到 Show Login Terminal 并勾选
6. 只要配置文件输入正确,那么后面就很简单了,只需要在ssh选项下的主机条目中右击或者点击箭头便可以开始连接服务器了
主要步骤就是:1、选择操作系统平台;2、输入远程主机的登录密码
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-P9qGOJRG-1685525907706)(./pic/login.png)]
7. 打开远程工作目录
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tWEkMD5f-1685525907706)(./pic/openfloder.png)]

三、本地扩展安装到远程服务器

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2HdDkKIo-1685525907706)(./pic/installplugin.png)]

四、配置 SSH 免密登陆

主要参考参考使用 vscode + Remote-SSH 插件 + vscode-server 进行远程开发

#生成 SSH 密钥对(若不存在得话)
#生成的密钥对被保存在本地的 C:\Users\你的用户名\.ssh
ssh-keygen -C "your email address"
#将 SSH 公钥添加到远程服务器
#输入上述命令以及远程服务器的登陆密码,将在远程服务器的 ~/.ssh 目录下创建 authorized_keys 文件(若不存在得话),并将本地 SSH 公钥中的内容添加到该文件中
ssh-copy-id user_name@server_ip

五、跳板机连接

如果内网主机无法直接连接,需要通过跳板机进行操作,此时需要先配置跳板机器的信息,再通过跳板机连接我们的目标主机

Host jump
    HostName 192.168.42.106
    User username1
    IdentityFile "C:\Users\12646\.ssh\id_rsa"

Host xxx
    HostName 192.168.42.105
    Port 8827
    User username
    ProxyJump jump

你可能感兴趣的:(开发环境学习,vscode,linux,服务器)