在Linux服务器上部署Jupyter Notebook并实现ssh无密码远程访问
Jupyter notebook版本7.4.2(这个版本AI提示我Jupyter7+(底层是 jupyter_server
2.x)
服务器开启服务
安装Jupyter notebook 7.4.2成功后,终端输入
jupyter notebook --generate-config
这将在 ~/.jupyter/
目录下生成 jupyter_notebook_config.py
文件。
进入目录将文件名修改为jupyter_server_config.py,内容的注释全部删除内容改为下面的
c = get_config()# 网络与端口设置
c.ServerApp.ip = '0.0.0.0' # 允许任意 IP 访问
c.ServerApp.port = 8888 # 监听端口
c.ServerApp.open_browser = False # 禁止自动打开浏览器
c.ServerApp.allow_remote_access = True # 允许远程访问
c.ServerApp.token = '' # 关闭 token 验证# 设置密码(格式:sha1:<salt>:<hashed_password>)
c.PasswordIdentityProvider.hashed_password = ''
然后通过下面的命令开启服务
jupyter notebook --no-browser --port=8888
这表示在服务器的8888端口开启服务
主机ssh连接
再打开一个主机的命令行,使用下面的命令
ssh -N -L 9913[这个地方可以自行设定四位十进制数字]:127.0.0.1:8888 ubuntu[这个地方要是你的服务器用户]@192.168.88.146[这个地方是你的服务器地址]
比如我的
ssh -N -L 9913:127.0.0.1:8888 ubuntu@192.168.88.146
这个命令表示将主机的9913和127.0.0.1 ip地址映射到远端(也就是服务器的8888端口)
然后通过主机浏览器输入下面的命令即可启用Jupyter的lab或者是输入tree启动传统界面
http://127.0.0.1:9913/lab
注意
在连接过程中遇到许多BUG会使得连接不成功,我记录一下我遇到的种种BUG
(1)服务器端口已被使用
当我们开启服务器端口后,希望关闭服务,使用非Ctrl+C的暴力方式退出,比如Ctrl+Z退出(实际上Ctrl+Z没有退出,只是挂起了程序),再次使用8888端口开启服务,就会自动在8889端口开启,如下图红框所示,这时我们如果还是拿主机连接,远端就要改为8889,但我似乎记得配置文件中写的是8888.。。。所以为了避免这种情况,我们固定拿Ctrl+C退出。
亦或者,emm,你已经一不小心挂起,而且不想重启服务器(实际上重新连接服务器即可)。那么是我们使用
jupyter notebook list
列出所有用作开启服务端口
OK,发现两个端口
逐个关闭所有端口,
#查看进程PID
lsof -n -i4TCP:<port-number>
#强制关闭PID
kill -9 <PID>
等下次使用时候,直接开启8888端口
(2)主机端口已被使用
就像刚刚所说的服务器8888端口退出不当,在下次使用8888端口开启服务的时候会默认开启8889端口,主机如果退出不当,也会产生这种现象。我们重启主机,或者更改主机ssh连接的端口即可。事实上我的9913也是因为不断连接而选取的数字,不过不用担心,当重启主机一切都会清空,事实上,也可以使用window下面的查看进程PID等操作,不过我不太熟悉,后面没有过多尝试
#查看进程PID
netstat -ano | findstr :<port-number>
(3)主机网页连接命令
看到网上绝大多数教程都是
loaclhost:8888
实际上这个localhost指的也是127.0.0.1(GPT告诉我的额)
我心想那我是不是这样就行了
loaclhost:9913
之后还是不行,可能是由于我是用版本的特殊性所致
Jupyter notebook版本7.4.2(这个版本AI提示我Jupyter(底层是
jupyter_server
2.x)
总之是一个让人窒息的版本。。。
(4)登陆密码
不管怎样,在配置文件中,我们可以给终端设置登陆密码
c.NotebookApp.password = 'sha1:fcf7f97ec219:fc3f70d16abf9626f6e8a9b1d84f297feebcf4f1'c.IdentityProvider.hashed_password = 'sha1:fcf7f97ec219:fc3f70d16abf9626f6e8a9b1d84f297feebcf4f1'
notebook是上面的,server是下面的,这里要注意密码的数值务必是哈希值,不然主机浏览器会一直显示密码输入不正确。我这个就是1234的哈希值。但是后来一直没有成功。配置文件中直接删除即可,就不用使用密码登陆了。
相关文章:

在Linux服务器上部署Jupyter Notebook并实现ssh无密码远程访问
Jupyter notebook版本7.4.2(这个版本AI提示我Jupyter7(底层是 jupyter_server 2.x) 服务器开启服务 安装Jupyter notebook 7.4.2成功后,终端输入 jupyter notebook --generate-config 这将在 ~/.jupyter/ 目录下生成 jupyter_…...

GPU 超级节点:AWS Trainium2 UltraServer
目录 文章目录 目录时间线Inferentia1Trainium1Inferentia2Trainium2Trainium2 ServerTrainium2 UltraServerTrainium2 UltraClustersTrainium3AWS GPU 实例矩阵与竞品分析SuperNode RackTrn2 ServerTrn2U Server ScaleUp 网络PCIe Gen5:CPU-Trainium2 ScaleUpNeuro…...
代码随想录算法训练营Day37 | 完全背包基础理论 518. 零钱兑换II 377. 组合总和Ⅳ 57. 爬楼梯(第八期模拟笔试)
完全背包基础理论 不放物品i:背包容量为j,里面不放物品i的最大价值是dp[i - 1][j]。 放物品i:背包空出物品i的容量后,背包容量为j - weight[i],dp[i][j - weight[i]] 为背包容量为j - weight[i]且不放物品i的最大价值…...

git仓库中.git 文件很大,怎么清理掉一部分
查询 .git 文件大小,在 git-bash 里执行(后面有些命令不能执行,也请在 git-bash 里执行) windows11 安装好后右键没有 git bash 命令-CSDN博客 du -sh .git // 592m .git 操作前最好先备份一份,避免推送到远程时出错…...

MySQL安装实战指南:Mac、Windows与Docker全平台详解
MySQL作为世界上最流行的开源关系型数据库,是每位开发者必须掌握的基础技能。本指南将手把手带你完成三大平台的MySQL安装,从下载到配置,每个步骤都配有详细说明和截图,特别适合新手学习。 一、Mac系统安装MySQL 1.1 通过Homebre…...

Rocky Linux 远程服务器画面GUI传输到本地显示教程——Xming
Rocky Linux 远程服务器画面GUI传输到本地显示教程——Xming 下载Xming安装Xming安装Xming字体Xming的使用设置测试 Xming可以提供GUI环境,在Linux服务器上执行GUI应用时,可通过Xming在Windows上执行GUI操作。 下载Xming 下载链接:https://…...
出现 org.apache.catalina.starup.HostConfig.deployDirectory 把web 应用程序部署到目录 解决方法
目录 前言1. 问题所示2. 原理分析3. 解决方法前言 爬虫神器,无代码爬取,就来:bright.cn Java基本知识: java框架 零基础从入门到精通的学习路线 附开源项目面经等(超全)【Java项目】实战CRUD的功能整理(持续更新)临近毕业,很多人问的项目都是JSP这一类,普遍都是tomca…...

游戏引擎学习第283天:“让‘Standing-on’成为一个更严谨的概念
如果同时使用多个OpenGL上下文,并且它们都有工作负载,GPU或GPU驱动程序如何决定调度这些工作?我注意到Windows似乎优先处理活动窗口的OpenGL上下文(即活动窗口表现更好),挺有意思的…… 当多个OpenGL上下文…...

React集成百度【JSAPI Three】教程(001):快速入门
文章目录 1、快速入门1.1 创建react项目1.2 安装与配置1.3 静态资源配置1.4 配置百度地图AK1.5 第一个DEMO1、快速入门 JSAPI Three版本是一套基于Three.js的三维数字孪生版本地图服务引擎,一套引擎即可支持2D、2.5D、3D全能力的地理投影与数据源加载,帮助开发者轻松搞定平面…...

python学习day2
今天主要学习了变量的数据类型,以及如何使用格式化符号进行输出。 一、认识数据类型 在python里为了应对不同的业务需求,也把数据分为不同的类型。 代码如下: """ 1、按类型将不同的变量存储在不同的类型数据 2、验证这些…...
VAPO:视觉-语言对齐预训练(对象级语义)详解
简介 多模态预训练模型(Vision-Language Pre-training, VLP)近年来取得了飞跃发展。在视觉-语言模型中,模型需要同时理解图像和文本,这要求模型学习二者之间的语义对应关系。早期方法如 VisualBERT、LXMERT 等往往使用预先提取的图像区域特征和文本词嵌入拼接输入,通过 T…...
C语言学习笔记之函数
文章目录 1、函数的基本用法2、函数的参数传递2.1 全局变量2.2 复制传递方式2.3 地址传递方式 3、函数的传参—数组4、指针函数5、递归函数和函数指针5.1 递归函数5.2 函数指针5.3 函数指针数组 1、函数的基本用法 函数是一个完成特定功能的代码模块,其程序代码独立…...
集合进阶2
Java不可变集合、Stream流与方法引用深度解析 一、不可变集合(Immutable Collections)进阶指南 1.1 不可变集合核心特性 防御性编程:防止外部修改数据(如传递集合给第三方库时)线程安全:天然支持多线程读…...
2025云上人工智能安全发展研究
随着人工智能(AI)技术与云计算的深度融合,云上AI应用场景不断扩展,但安全挑战也日益复杂。结合2025年的技术演进与行业实践,云上AI安全发展呈现以下关键趋势与应对策略: 一、云上AI安全的主要挑战 数据泄露…...

【C++】模版(1)
目录 1. 泛型编程 2. 函数模版 2.1 函数模版概念 2.2 函数模版格式 2.3 函数模版的原理 2.4 函数模版实例化方式 隐式实例化 显式实例化 2.5 模版参数的匹配原则 3. 模版类 模版类的定义格式 模版类的实例化 1. 泛型编程 如何实现一个通用的交换函数呢?…...

基于开源AI智能名片链动2+1模式S2B2C商城小程序源码的去中心化商业扩散研究
摘要:本文探讨在去中心化商业趋势下,开源AI智能名片链动21模式S2B2C商城小程序源码如何助力企业挖掘数据价值、打破信息孤岛,实现商业高效扩散。通过分析该技术组合的架构与功能,结合实际案例,揭示其在用户关系拓展、流…...

5月19日day30打卡
模块和库的导入 知识点回顾: 导入官方库的三种手段导入自定义库/模块的方式导入库/模块的核心逻辑:找到根目录(python解释器的目录和终端的目录不一致) 作业:自己新建几个不同路径文件尝试下如何导入 一、导入官方库 …...

白杨SEO:不到7天,白杨SEO博客网站百度搜索显示和排名恢复正常!顺带说说上海线下GEO聚会分享和播客红利
大家好,我是白杨SEO,专注SEO十年以上,全网SEO流量实战派,AI搜索优化研究者。 5月开始,明显就忙起来了,不管是个人陪跑还是企业顾问,不管是需要传统SEO还是新媒体流量,还是当下这个A…...
Windows软件插件-音视频捕获
下载本插件 音视频捕获就是获取电脑外接的话筒,摄像头,或线路输入的音频和视频。 本插件捕获电脑外接的音频和视频。最多可以同时获取4个视频源和4个音频源。插件可以在win32和MFC程序中使用。 使用方法 首先,加载本“捕获”DLL,…...
go 与面向对象编程(OOP)
Go 语言在设计上与传统面向对象(OOP)语言(如 Java、C)有明显差异,官方明确表示它并非纯面向对象语言。然而,它通过独特的方式实现了部分面向对象的核心特性。以下是关键分析: 1. Go 对传统 OOP…...
Mergekit——任务向量合并算法Ties解析
Mergekit——高频合并算法 TIES解析 Ties背景Ties 核心思想具体流程总结 mergekit项目地址 Mergekit提供模型合并方法可以概况为四大类:基本线性加权、基于球面插值、基于任务向量 以及一些专业化方法,今天我们来刷下基于任务向量的ties合并方法…...

Java 应用中的身份认证与授权:OAuth2.0 实现安全的身份管理
Java 应用中的身份认证与授权:OAuth2.0 实现安全的身份管理 在当今的软件开发领域,身份认证与授权是构建安全可靠应用的关键环节。而 Java 作为广泛使用的编程语言,在实现这一功能上有着诸多成熟的框架和方案。其中,OAuth2.0 凭借…...

【氮化镓】偏置对GaN HEMT 单粒子效应的影响
2025年5月19日,西安电子科技大学的Ling Lv等人在《IEEE Transactions on Electron Devices》期刊发表了题为《Single-Event Effects of AlGaN/GaN HEMTs Under Different Biases》的文章,基于实验和TCAD仿真模拟方法,研究了单粒子效应对关断状态、半开启状态和开启状态下AlG…...

Mysql 索引概述
索引(index)是帮助Mysql高效获取数据的数据结构 索引优点:1. 提高排序效率 2. 提高查询效率 索引缺点:1.索引占用空间(可忽略)2.索引降低了更新表的速度,如进行insert,update,delette 时效率降…...
HttpServletRequest常用功能简介-笔记
javax.servlet.http.HttpServletRequest 是 ServletRequest 接口的子接口,专用于处理 HTTP 协议相关的请求。它提供了访问请求行、请求头、请求参数以及请求属性等方法。 1.请求行(Request Line) ✅ 功能说明 请求行包含客户端发送的 HTTP …...

解决RAGFlow部署中镜像源拉取的问题
报错提示 Error response from daemon: Get "https://registry-1.docker.io/v2/ ": context deadline exceeded 解决方法 这个原因是因为拉取镜像源失败,可以在/etc/docker/daemon.json文件中添加镜像加速器,例如下面所示 {"registry…...

uniapp打包H5,输入网址空白情况
由于客户预算有限,最近写了两个uniapp打包成H5的案例,总结下面注意事项 1. 发行–网站-PCWeb或手机H5按钮,输入名称,网址 点击【发行】,生成文件 把这个给后端,就可以了 为什么空白呢 最重要一点…...
wsl2中Ubuntu22.04配置静态IP地址
第一步找到/etc/netplan目录下的01-netcfg.yaml文件,(如果不存在则自己创建一个)在里面配置一下代码: network:version: 2renderer: networkdethernets:eth0:dhcp4: noaddresses: [192.168.3.222/24]routes:- to: 0.0.0.0/0via: …...

C++(21):fstream的读取和写入
目录 1 ios::out 2 ios::in和is_open 3 put()方法 4 get()方法 4.1 读取单个字符 4.2 读取多个字符 4.3 设置终结符 5 getline() 1 ios::out 打开文件用于写入数据。如果文件不存在,则新建该文件;如果文件原来就存在,则打开时清除…...

NAT/代理服务器/内网穿透
目录 一 NAT技术 二 内网穿透/内网打洞 三 代理服务器 一 NAT技术 跨网络传输的时候,私网不能直接访问公网,就引入了NAT能讲私网转换为公网进行访问,主要解决IPv4(2^32)地址不足的问题。 1. NAT原理 当某个内网想访问公网,就必…...