[AI开发配环境]VSCode远程连接ssh服务器

news2024/12/25 5:33:51

文章目录

  • 总览:
  • ssh连接远程服务器
    • 连接
    • 免密登录:
    • Docker:ssh连接远程宿主机后,进一步连接并使用其中的docker容器
    • reload window
  • 配置解释器:Ctrl+P,在上面输入“>python”, 然后选selecet interpreter
  • 运行命令
    • 方法一:直接在左边run and debug (可以断点调试):
    • 方法二:不需要调试的话可以直接用terminal,完全支持tmux
  • terminal美化(报错信息不同颜色)
    • 换一个配色方案,但不会增加不同信息的区别显示:
    • 给python输出的 报错信息增加不同颜色的显示:
  • ssh 端口转发
  • 代码自动补全
  • 3D内容查看
  • jupyter notebook
  • github copilot
  • 图形界面X11
  • 常用操作和观察

总览:

  • 优点:
    • 方便,连上主机后可以直接连container,不需要额外配置container的ssh了;
    • 支持jupyter notebook
    • 调试也很方便
    • ssh端口可以直接转发
    • 甚至可以直接查看3D文件
  • 缺点(可以用mobaxterm代替吧):
    • 上传下载文件感觉不是特别方便?后面可以试试sftp插件

ssh连接远程服务器

连接

参考此链接:
https://zhuanlan.zhihu.com/p/667236864

  • 安装插件remote-ssh
  • 左侧栏点那个remote explorer (下图1),新建远程(new remote 下图2)
  • 在这里插入图片描述
  • 在顶部的命令框中输入:ssh -P <port> user@XXX.XXX.XXX.XX
  • 回车,还是顶部命令框,他会问你选那个配置文件,就用第一个就行,会生成这个配置文件
  • 然后在remote explorer里面就会显示这个新添加的远程服务器,点右边的→或者另一个按钮来打开就行
  • 还是窗口顶端,他会问你是什么平台Linux,Windows还是macOS,照着选就行
  • 还是窗口顶端,会问你密码,输入即可
  • 然后就连上了。
  • 可以选择要打开的文件夹,如何之后想打开另外的文件夹,可以点File,Open Folder, 如下图
    • 在这里插入图片描述

注意,选服务器类型,linux还是啥的,输密码,都是在顶部这个窗口:
在这里插入图片描述

免密登录:

  • 本地主机生成密钥对:ssh-keygen -t rsa -b 2048 -f C:\Users\YourUsername\.ssh\id_rsa
  • 在远程服务器的~/.ssh/authorized_keys 这个文件中(没有就自己新建),粘贴自己本地主机的C:\Users\YourUsername.ssh\id_rsa.pub的内容(本地主机的公钥)。
  • 在本地主机的C:\Users\YourUsername.ssh\config文件中,最后一行写上:IdentityFile: C:\Users\YourUsername.ssh\id_rsa (这一部是说,我要使用这个私钥文件)

Docker:ssh连接远程宿主机后,进一步连接并使用其中的docker容器

参考此文:
https://blog.csdn.net/weixin_45656074/article/details/131160299

注意!docker容器没有配置和远程宿主机的端口印射才能这样!否则还是当他是一台宿主机,走ssh。
安装docker扩展,安装完成后在左侧会多出一个docker 按钮:
在这里插入图片描述
点这个按钮,会显示containers, images,registries。
在container中右键你想要打开的容器,选attach visual studio code
在这里插入图片描述

注意,在每个容器中都要重新安装vscode扩展,如python等。

reload window

时间太久连不上远程的话,可以reload一下
ctrl + shift + P 输入reload

配置解释器:Ctrl+P,在上面输入“>python”, 然后选selecet interpreter

参考本文:https://blog.csdn.net/qq_41990294/article/details/119106112

先在远程安装extention Python。
在这里插入图片描述

Ctrl+P,在上面输入“>python”, 然后选selecet interpreter在这里插入图片描述

运行命令

方法一:直接在左边run and debug (可以断点调试):

在这里插入图片描述
可以修改路径:选择with arguments
在这里插入图片描述
然后修改launch.json,加上cwd这一行,改成自己的路径:
在这里插入图片描述

切换回要跑的脚本之后,再运行,因为默认运行的是current file,如果还停留在json这个文件的话他跑的就是json,当然就会报错。

之后,顶部输入框会让你输入参数,有就输入,没有就直接回车就行。

如果打了断点,就是调试,上方是一些操作按钮:
在这里插入图片描述
左边会显示一些变量之类的情况:
在这里插入图片描述
但是可能很难找到自己想看的变量,在watch这里点加号,自己想看啥就加啥就行:
在这里插入图片描述

方法二:不需要调试的话可以直接用terminal,完全支持tmux

下面就是terminal,可以用
在这里插入图片描述

如果没显示terminal,可以把鼠标放在下面这条黑线上,黑线就会变成蓝线,往上拖动就可以了:
在这里插入图片描述

terminal美化(报错信息不同颜色)

https://blog.csdn.net/m0_73832962/article/details/132202467

换一个配色方案,但不会增加不同信息的区别显示:

File-》Preferences -》 settings,然后搜索workbench, 选apperence, Edit in settings.json,
从下面这个链接中:https://glitchbone.github.io/vscode-base16-term/#/
选择喜欢的,复制到最后那个json项ColorCustomization里面

给python输出的 报错信息增加不同颜色的显示:

在site-package文件夹中新建一个sitecustomize.py文件,并在文件中添加下列代码保存:

import sys
from IPython.core.ultratb import ColorTB
sys.excepthook = ColorTB()

ssh 端口转发

比如我们如果想看6006的,emm,tensorbaord,需要用到此功能。
直接在底部框里面添加这个port就行了:
在这里插入图片描述
亲测,docker容器内的ssh直接连本地windows,不需要配置docker容器和远程宿主机的端口印射,就可以直接印射到本地windows主机

代码自动补全

似乎自带自动补全功能
在这里插入图片描述

3D内容查看

安装插件3D Viewer for VSCode (好像打开ply不太行,就是一片绿色)
安装vscode-3d-preview : 支持ply,obj,off等格式。
在这里插入图片描述

jupyter notebook

如果打开了ipynb文件的话,会自动推荐哪些插件安装
安装了插件之后可以直接用,
在这里插入图片描述

在这里插入图片描述
跑完之后记得在这里restart来清除显存占用:
在这里插入图片描述

如果要指定工作路径,似乎最简单的方式是在开头搞一个cell来改路径:
在这里插入图片描述

github copilot

学生认证可以免费,否则要付费。
https://zhuanlan.zhihu.com/p/578964972?utm_id=0

  • 这里学生认证需要一个教育邮箱,以及证明的纸质材料现场拍照
  • 根据上面的链接说,学信网的中文认证报告不行,得自己翻译成英文的才行

太麻烦了就没搞了

可以用这个免费的插件平替一下:Codeium
在这里插入图片描述

图形界面X11

https://blog.csdn.net/Stone_hello/article/details/120041495,

  • 本地安装Xming
  • 本地运行Xlaunch,使用默认的display number (0),一直下一步。
  • C:/Users/username/.ssh.config 文件中,在对应的远程主机中添加:
    • ForwardX11 yes
    • ForwardX11Trusted yes
    • ForwardAgent yes
  • 远程主机中,确保ssh的配置文件 /etc/ssh/sshd_config中
  • 直接试试terminal中行不行,不行的话,就试试下面两条:(第一条似乎更加通用,第二条可能需要直接ssh连docker容器才行)
    • export DISPLAY=“你本地windows主机的ip地址:0.0” # 这个ip地址可以在本地主机中用ipconfig命令查看 (这一条需要本地打开XMing)
    • export DISPLAY=“远程机的i名字:10.0” # 这个名字就是terminal里面显示的username@XXX, 里面这个XXX # 这一条似乎根本不用本地打开XMing
  • 亲测不需要的步骤,但也可能在有的地方加上就好了:
    • 在本地的Xming安装路径中修改X0.hosts (在localhost下面一行添加远程服务器的ip)
    • 运行Xlaunch的时候,选no access control (disable access control)

补充说明:
我是如果用cmd用ssh连接远程,echo $DISPLAY,会发现DISPLAY被自动设置为了"远程机的i名字:10.0"。

参考:
https://superuser.com/questions/310197/how-do-i-fix-a-cannot-open-display-error-when-opening-an-x-program-after-sshi

常用操作和观察

常用快捷键:
Ctrl + K + 0: 折叠所有代码块
Shirt + Alt + 方向键上或下:在上方或下方复制本行代码
Ctrl + ctrl + shift + P 输入reload: reload window

右边这个代码框,右边那一竖条,靠左的是git的改变,靠右的是报错或warning
代码框里面本身高亮为黄色的也是warning的。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1865659.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LeetCode热题100——最长连续序列

给定一个未排序的整数数组 nums &#xff0c;找出数字连续的最长序列&#xff08;不要求序列元素在原数组中连续&#xff09;的长度。 请你设计并实现时间复杂度为 O(n) 的算法解决此问题。 class Solution(object):def longestConsecutive(self, nums):""":t…

将文本嵌入和知识(图)嵌入结合在RAG系统中

在我的以前的文章中&#xff0c;我写了关于如何将知识图谱与 RAGs 结合使用&#xff0c;以及如何使用图技术进行自适应标记化以构建更具上下文意识的LLMs。在本文中&#xff0c;我很高兴地介绍了我结合文本嵌入和知识&#xff08;图&#xff09;嵌入进行实验以及对RAG性能的观察…

云3D渲染:深度剖析技术原理、优势及其在各行业的广泛应用

云3D渲染技术&#xff0c;在数字化转型的大潮中&#xff0c;以其显著的优势和广阔的应用潜力&#xff0c;正在深刻地重塑多个行业的未来。它不仅为电影特效、建筑设计、游戏开发和虚拟现实等领域注入了前所未有的视觉震撼&#xff0c;还促进了创意思维与前沿技术的紧密结合&…

无人机无刷电机理论教学培训课程

本文档为一份关于Brushless电机理论的详细教程&#xff0c;由TYTO Robotics编制&#xff0c;旨在帮助用户理解brushless电机的工作原理、特性以及如何通过实验测定其关键参数Kv和Kt。文档首先介绍了brushless电机的基本组成&#xff0c;包括静止的定子和旋转的转子&#xff0c;…

单目标应用:基于鳗鱼和石斑鱼优化器(Eel and grouper optimizer,EGO)的微电网优化(MATLAB代码)

一、微电网模型介绍 微电网多目标优化调度模型简介_vmgpqv-CSDN博客 参考文献&#xff1a; [1]李兴莘,张靖,何宇,等.基于改进粒子群算法的微电网多目标优化调度[J].电力科学与工程, 2021, 37(3):7 二、鳗鱼和石斑鱼优化器求解微电网 2.1算法简介 鳗鱼和石斑鱼优化器&…

跟我从零开始学C++(C++代码基础)5

引言 小伙伴们&#xff0c;在经过一些基础定义和指针&#xff0c;数组&#xff0c;函数的洗礼后&#xff0c;我相信大家肯定都已经对C编程有了新的认知&#xff0c;同时呢&#xff0c;坚持下来的小伙伴们肯定都是好样的&#xff0c;大家都是很棒的&#xff0c;现在我们来学一学…

亚马逊运营专词(二)

1. A页面&#xff1a;亚马逊A页面即图文版商品详情页面&#xff0c;可以通过A页面使用不同的方式来描述商品特征&#xff0c;例如在页面中添加品牌故事、产品图片、产品文字介绍等&#xff0c;进一步完善页面。但目前A页面只对在亚马逊上注册了品牌的商家开放。 2. 跟卖&#x…

python操作服务器

一&#xff1a;使用 paramiko 进行SSH连接 首先确保已安装paramiko库&#xff1a;pip install paramiko 代码示例 在这里插入代码片import paramikohostname hostname username user password passwdclient paramiko.SSHClient() client.set_missing_host_key_policy(par…

突破内存限制:Jamba模型的高效文本处理能力

在当今信息爆炸的时代&#xff0c;处理和理解海量文本数据的需求日益增长。自然语言处理&#xff08;NLP&#xff09;领域的研究者们一直在探索如何构建更高效、更强大且更灵活的语言模型来应对这一挑战。然而&#xff0c;现有的大型语言模型&#xff0c;尤其是基于Transformer…

物联网“此用户无权修改接入点名称设置”解决方案

根本原因apns-conf.xml里面没有 符合 物理网卡 的配置 可以先加一个APN试一下&#xff0c;看看默认的MCC和MNC是什么 然后在”命令行“查询一下 adb shell sqlite3 /data/user_de/0/com.android.providers.telephony/databases/telephony.db "select * from carriers wh…

基于Java技术的在线学习平台系统

开头语&#xff1a;你好呀&#xff0c;我是计算机学姐码农小野&#xff01;如果有相关需求&#xff0c;可以私信联系我。 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;Java技术&#xff0c;基于SpringBoot框架 工具&#xff1a;Eclipse、Navicat、M…

Arduino - 按钮 - 长按短按

Arduino - Button - Long Press Short Press Arduino - 按钮 - 长按短按 Arduino - Button - Long Press Short Press We will learn: 我们将学习&#xff1a; How to detect the button’s short press 如何检测按钮的短按How to detect the button’s long press 如何检测…

Redis-集群-环境搭建

文章目录 1、清空主从复制和哨兵模式留下的一些文件1.1、删除以rdb后缀名的文件1.2、删除主从复制的配置文件1.3、删除哨兵模式的配置文件 2、appendonly修改回no3、开启daemonize yes4、protect-mode no5、注释掉bind6、制作六个实例的配置文件6.1、制作配置文件redis6379.con…

boss直聘招聘数据可视化分析

boss直聘招聘数据可视化分析 一、数据预处理二、数据可视化三、完整代码一、数据预处理 在 上一篇博客中,笔者已经详细介绍了使用selenium爬取南昌市web前端工程师的招聘岗位数据,数据格式如下: 这里主要对薪水列进行处理,为方便处理,将日薪和周薪的数据删除,将带有13薪…

迁移学习——CycleGAN

CycleGAN 1.导入需要的包2.数据加载&#xff08;1&#xff09;to_img 函数&#xff08;2&#xff09;数据加载&#xff08;3&#xff09;图像转换 3.随机读取图像进行预处理&#xff08;1&#xff09;函数参数&#xff08;2&#xff09;数据路径&#xff08;3&#xff09;读取文…

数据结构——带头双向循环链表(c语言实现)

目录 1.单链表和双向链表对比 2.双向链表实现 2.1 创建新节点 2.2 链表初始化 2.3 尾插 2.4 头插 2.5 尾删 2.6 头删 2.7 查找 2.8 指定位置后插入数据 2.9 删除指定节点 2.10 销毁链表 2.11 打印链表 前言&#xff1a; 我们在前几期详细地讲解了不带头单…

EthernetIP IO从站设备数据 转opc ua项目案例

1 案例说明 设置网关采集EthernetIP IO设备数据把采集的数据转成opc ua协议转发给其他系统。 2 VFBOX网关工作原理 VFBOX网关是协议转换网关&#xff0c;是把一种协议转换成另外一种协议。网关可以采集西门子&#xff0c;欧姆龙&#xff0c;三菱&#xff0c;AB PLC&#xff0…

day41--Redis(三)高级篇之最佳实践

Redis高级篇之最佳实践 今日内容 Redis键值设计批处理优化服务端优化集群最佳实践 1、Redis键值设计 1.1、优雅的key结构 Redis的Key虽然可以自定义&#xff0c;但最好遵循下面的几个最佳实践约定&#xff1a; 遵循基本格式&#xff1a;[业务名称]:[数据名]:[id]长度不超过…

STM32音频应用开发:DMA与定时器的高效协作

摘要: 本文章将深入浅出地介绍如何使用STM32单片机实现音频播放功能。文章将从音频基础知识入手&#xff0c;逐步讲解音频解码、DAC转换、音频放大等关键环节&#xff0c;并结合STM32 HAL库给出具体的代码实现和电路设计方案。最后&#xff0c;我们将通过一个实例演示如何播放W…

FPGA SATA高速存储设计

今天来讲一篇如何在fpga上实现sata ip&#xff0c;然后利用sata ip实现读写sata 盘的目的&#xff0c;如果需要再速度和容量上增加&#xff0c;那么仅仅需要增加sata ip个数就能够实现增加sata盘&#xff0c;如果仅仅实现data的读写整体来说sata ip设计比较简单&#xff0c;下面…