非root账户Linux服务器配置Jupyter notebook

2023-10-31 19:53:58 浏览数 (1)

前言

使用GPU服务器的时候往往是多人用一台服务器,而每个人的权限不一定都拥有root权限,因此防火墙的问题就不好解决。如果想要通过本地使用服务器的jupyter notebook就会有些困难,本文整理网上教程同时博主自己也实践了一下。


一、Jupyter notebook安装

如果服务器装了Anaconda,就不需要再另外安装了。如果没有安装Anaconda,建议安装Anaconda。

二、生成Jupyter notebook配置文件

直接在服务器命令行输入,即会自动生成配置文件 jupyter_notebook_config.py:

代码语言:javascript复制
jupyter notebook --generate-config

三、生成密码并配置

1.生成密码

在服务器命令行输入python,之后输入以下代码:

代码语言:javascript复制
from notebook.auth import passwd
passwd()

这时候会让你输入密码,这个就是访问服务器jupyter notebook 的密码,密码随意,别忘就行。出现下图所示的哈希密码(图中红框)即代表完成:

2.添加到配置文件

打开第一步生成的配置文件并找到下图的这一行,我这里是278行:

接着把上面的哈希密码放入,保存退出。

3.强行重置密码

这一步很关键!!很多教程里面没有说,导致最后登录一直显示密码错误,在服务器命令行中输入:

代码语言:javascript复制
 jupyter notebook password

接着再次输入之前的密码即可。

四、建立本地SSH通道

jupyter notebook默认端口是8888,如果服务器防火墙没有开放8888端口,那么将无法访问,因此需要建立本地SSH通道来访问服务器。

在本地终端输入:

代码语言:javascript复制
ssh -p port username@address_of_remote -L 127.0.0.1:1111:127.0.0.1:8888

这里port是你登录服务器时候用的端口,我这里是22122,那么就把port换成22122。username是登录服务器的用户名。address_of_remote是服务器的ip地址。后面1111端口是自定义的本地端口,可以换别的也行。最后8888是服务器默认的jupyter notebook端口。

最后在服务器命令行运行(命令行不能断,或者用nohup解决):

代码语言:javascript复制
jupyter notebook

然后在本地浏览器输入地址:localhost:1111 即可访问服务器jupyter notebook啦!


总结

总的来说配置还是很快的。其中有两个坑,一个是需要强制重置密码,另外一个是需要建立ssh通道。

最后附上网上看到的关于ssh通道的相关知识:SSH通道

附:安装Jupyter NbExtensions Configurator

用conda安装:

代码语言:javascript复制
conda install -c conda-forge jupyter_contrib_nbextensions
conda install -c conda-forge jupyter_nbextensions_configurator
jupyter contrib nbextension install --user --skip-running-check

我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!

0 人点赞