一下午终于配好:如何用vs code连接远程主机jupyter server(notebook/lab)

因为教研室的机器有2060,笔记本只有集成显卡,虽然也可用浏览器访问,但是vs code不论从界面还是扩展功能来说,都有更好的编程体验,所以想通过vs code远程连接jupyter server。

要实现该需求总体需要三个步骤:

  1. 远程主机安装ssh server
  2. 本地主机安装vs code并安装jupyter、Remote-ssh扩展
  3. 配置jupyter

安装远程主机ssh服务

SSH分为客户端openssh-client和服务端openssh-server

如果你只是想登陆别的机器的SSH只需要安装openssh-client,如果要使本机开放SSH服务就需要安装openssh-server。

ubuntu有默认安装openssh-client(笔者的ubuntu版本为Ubuntu 20.04.4 LTS),如果没有则执行:

sudo apt-get install openssh-client

可通过cat /etc/issue命令查看linux发行版版本信息,cat /proc/version命令查看操作系统版本信息。

安装服务端

sudo apt-get install openssh-server

安装完成后,确认ssh server是否启动了:

ps -e|grep ssh

或者执行netstat -tlp命令。

如果没有启动,可执行:

sudo /etc/init.d/ssh start

至此,ssh server就安装好啦!

配置ssh

如果还有一些特殊的需求可以通过修改位于/etc/ssh/sshd_config的ssh server配置文件自定义。

首先,备份一下原始配置文件并修改权限,方便之后修改配置:

     sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.originalsudo chmod 777 /etc/ssh/sshd_config

使用vim编辑配置文件:

vim /etc/ssh/sshd_config

常用的有:

  1. 修改端口号,取消掉Port的注释并自定义,避免端口扫描。
  2. 找到#PermitRootLogin yes,去掉注释,修改为no。(笔者没有修改,因为是root登录)

安装并配置vs code

vs code官网下载链接:Download Visual Studio Code - Mac, Linux, Windows

之后再vs code中的extension marketplace下载扩展。

安装Remote Explorer(本地主机)

安装Remote SSH扩展(本地主机)

用于连接远程主机。

下载好之后,点击左侧Remote Explorer,点击加号,添加新的远程连接:

输入格式为:ssh 用户名@主机ip -端口号

例如,笔者连接的远程主机的22端口:ssh root@11.22.33.44 -22

连接成功后会看到如下效果:

此时就可以在Explorer中访问远程主机的文件夹:

安装jupyter扩展(远程主机)

安装成功后可以在Extensions中看到远程主机的扩展,搜索jupyter,在远程主机安装jupyter:

此时,所有需要的环境全部安装完毕,之后需要配置jupyter以及注意几个小坑就可以成功完成。

配置并连接远程主机的jupyter server

配置jupyter server

在用户文件夹的.jupyter文件夹中(~/.jupyter)包含jupyter配置文件:jupyter_notebook_config.pyvim jupyter_notebook_config.py:

c.ServerApp.root_dir='自定义notebook工作目录'
c.ServerApp.ip='*' #notebook监听所有ip地址# 重要配置!!!
c.ServerApp.allow_remote_access = True #允许远程访问服务
c.ServerApp.allow_root = True          #允许在root用户下运行(之前没开这个配置排查了很久)
c.NotebookApp.allow_origin = '*'       #允许任意源访问

配置完成后,在远程主机运行jupyter notebook或jupyter lab。

连接jupyter server

在Explorer选择远程主机中的某个python文件,一次点击“Select Notebook Kernel ”->“Select Another Kernel"

最后输入Jupyter Server的地址:

例如11.22.33.44:8888/(token)

这里注意笔者jupyter扩展的版本:

操作可能会不一样,笔者看到部分博客是输入Ctrl+Shift+P搜索Jupyter:Specify Jupyter Server for Connections命令,但是由于版本调整,笔者版本中没有该项配置。

详见No "Specify Jupyter Server for Connections" command · microsoft/vscode-jupyter · Discussion #13145 · GitHub

最后,检查下工作目录,有可能会有导入包时的路径的小问题,可通过以下命令修改:

# 修改当前工作目录
import osos.chdir(os.getcwd()+'/当前工作目录')

不出意外,到现在应该已经可以用vs code连接远程主机并使用远程主机的jupyter server运行代码了。

Have Fun!!


由于本人能力相当有限,如果有任何问题或者建议,都非常非常欢迎各位兄弟评论和私信!!

写作是一种输出,交流也是一种输出,都是进步最快的方式,相互交流,共同进步!!


参考

  • Ubuntu环境下SSH的安装及使用-CSDN博客
  • Manage Jupyter Kernels in Visual Studio Code
  • No "Specify Jupyter Server for Connections" command · microsoft/vscode-jupyter · Discussion #13145 · GitHub
  • Security in the Jupyter notebook server

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

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

相关文章

Python推导式详细讲解

更多资料获取 📚 个人网站:ipengtao.com 在Python中,推导式是一种简洁而强大的语法特性,可以用来创建列表、集合、字典等数据结构。本文将深入探讨Python中的三种推导式:列表推导式、集合推导式和字典推导式&#xff…

@Component 和 @Bean 和 @configuration的区别

从位置上确定了每个注解的区别 从注解的位置上来确定这三个注解的区别,我们可以看到它们的应用场景和作用不同。 Component注解: Component注解是标记在类级别上的注解,用于将一个类标识为Spring容器的组件。通过组件扫描(compon…

JavaScript中处理时间差

ES6版本 function countdown(endTime, includeSeconds true) {// 获取当前时间let now new Date();// 将传入的结束时间字符串转换为日期对象let endDateTime new Date(endTime);// 检查传入的时间字符串是否只包含日期(不包含时分秒)if (endTime.tr…

喜讯:麦田(苏州)医学科技有限公司立项项目获得2024年度浙江省医药卫生科技计划资助的公告

喜讯:麦田(苏州)医学科技有限公司立项项目获得2024年度浙江省医药卫生科技计划资助的公告 我们麦田(苏州)医学科技有限公司非常荣幸地宣布,由我们联合浙江省人民医院、杭州市红十字会医院、杭州师范大学共同…

Docker-多容器应用

一、概述 到目前为止,你一直在使用单个容器应用。但是,现在您将 MySQL 添加到 应用程序堆栈。经常会出现以下问题 - “MySQL将在哪里运行?将其安装在同一个 容器还是单独运行?一般来说,每个容器都应该做一件事&#x…

强化学习——简单解释

一、说明 最近 OpenAI 上关于 Q-star 的热议激起了我温习强化学习知识的兴趣。这是为强化学习 (RL) 新手提供的复习内容。 二、强化学习的定义 强化学习是人类和其他动物用来学习的学习类型。即,通过阅读房间来学习。(从反馈中学习)。让我解…

在C#中,PropertyInfo.SetValue方法用于设置属性值

在C#中,PropertyInfo.SetValue方法用于设置属性值。该方法接受两个参数:对象实例和属性值。下面是一个示例代码,演示如何使用PropertyInfo.SetValue方法设置属性值: using System; using System.Reflection; public class Per…

基于深度学习CRNN的水表读数识别系统

1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 研究背景与意义 随着科技的不断发展,深度学习技术在各个领域都取得了显著的成果。其中,基于深度学习的图像识别技术在计算机视觉领域具有重要的应用价值。…

Linux环境搭建(Ubuntu22.04)+ 配置共享文件夹(Samba)

Linux开发环境准备 搭建Linux开发环境所需要的软件如下: VMware虚拟机:用于运行Linux操作系统的虚拟机软件之一,VMware下载安装在文章中不做说明,可自行百度谢谢Ubuntu光盘镜像:用于源代码编译,有闲置计算…

maven生命周期回顾

目录 文章目录 **目录**两种最常用打包方法:生命周期: 两种最常用打包方法: 1.先 clean,然后 package2.先 clean,然后install 生命周期: 根据maven生命周期,当你执行mvn install时&#xff0c…

大数据Hadoop-HDFS_架构、读写流程

大数据Hadoop-HDFS 基本系统架构 HDFS架构包含三个部分:NameNode,DataNode,Client。 NameNode:NameNode用于存储、生成文件系统的元数据。运行一个实例。 DataNode:DataNode用于存储实际的数据,将自己管理…

Python (二) 读写excel文件

程序员的公众号:源1024,获取更多资料,无加密无套路! 最近整理了一波电子书籍资料,包含《Effective Java中文版 第2版》《深入JAVA虚拟机》,《重构改善既有代码设计》,《MySQL高性能-第3版》&…

妈妈和老婆掉进水里,孟子认为先救老婆是禽兽

妈妈和老婆同时掉进水里先救谁? 多数男人不敢回答,怕得罪老婆。孟子认为,必须先救妈妈。因为父母都照顾不好,是不孝。先救妈妈,再救老婆。 中国人的信仰是天,以及孔孟之道。中国人不信宗教。 孟子&#x…

【普中开发板】基于51单片机温度报警器设计( proteus仿真+程序+实物演示+讲解视频)

这里写目录标题 1. 主要功能:2. 讲解视频:3. 仿真4. 实物烧录和现象5. 程序代码6. 设计资料内容清单&&下载链接资料下载链接: 【普中开发板】基于51单片机温度报警器设计( proteus仿真程序实物演示讲解视频) Proteus 仿真…

java-使用poi时报错Method org/apache/poi/xssf/usermodel/XSSFWorkbook.close()V is abst

报错信息1 AbstractMethodError: Method org/apache/poi/xssf/usermodel/XSSFWorkbook.close()V is abstract 解决:是因为poi 3.11才有close,升级pom文件的版本就可以了 报错信息2 Package should contain a content type part [M1.13] 报错信息3 tried…

求职招聘小程序源码系统 全开源源代码:找工作+招人才 平台级别运营版 附带完整的搭建教程

在当前的求职招聘市场中,尽管存在大量的求职者和招聘者,但依然存在着信息不对称、沟通不畅等问题。小编来给大家分享一款求职招聘小程序源码系统,旨在提供一个高效、便捷、安全的求职招聘平台。 以下是部分代码示例: 系统特色功能…

Java——正则表达式

1、什么是正则表达式 一个正则表达式,就是用某种模式去匹配字符串的一个公式。很多人因为它们看上去比较古怪而且复杂所以不敢去使用,不过,经过练习后,就觉得这些复杂的表达式写起来还是相当简单的,而且,一…

vue3实现2d楼宇模型

需求背景解决效果视频效果2dFloor.vue 需求背景 需要实线一个2d楼宇模型&#xff0c;并按照租户温度渲染颜色 解决效果 视频效果 2dFloor.vue <!--/*** author: liuk* date: 2023/12/06* describe: 2d楼宇模型* CSDN:https://blog.csdn.net/hr_beginner?typeblog*/--&g…

7+衰老+分型+预后模型生信思路,没思路的同学们可参考

今天给同学们分享一篇生信文章“Identification and validation of a novel senescence-related biomarker for thyroid cancer to predict the prognosis and immunotherapy”&#xff0c;这篇文章发表在Front Immunol期刊上&#xff0c;影响因子为7.3。 结果解读&#xff1a;…

vue3 print ts打印组件

依赖安装 npm install vue3-print-ts 全局注入 import { createApp } from vue import App from ./App.vue import Print from vue3-print-tsconst app createApp(App) app.directive("print", Print) 页面使用&#xff08;element plus ui 例子&#xff09; &…