Jupyter Notebook远程连接服务器,本地浏览器登录不上

目录

  • 关于在服务器上的操作
    • 1.keyfile 和 certfile
    • 2. 关于sha1开头的密码
    • 3. 关于本地浏览器登录时需要输入token
    • 4.补充

关于在服务器上的操作

关于在linux上创建密码,修改.py文件,大家可以参考1
这篇文章讨论的是我在跟着这篇文章操作的时候遇到的一些问题以及解决办法,希望能帮助解决你的困扰。

1.keyfile 和 certfile

根据官方文档,[1]中用到的key文件和certifile文件不是必须的,如果加了这两个文件,在本地的连接模式好像要改成 ssl,然后再浏览器输入的是 https:.//xxx,而不是http://

2. 关于sha1开头的密码

from notebook.auth import passwd
passwd()

会打印出密码,但是这个密码一般不是以‘sha1’开头的,看其他博文说‘sha1’开头的才能解码,如果想要输出的密码是 ‘sha1’ 开头的,这里输入的代码需要改一下:

from notebook.auth import passwd; 
passwd(algorithm='sha1')

3. 关于本地浏览器登录时需要输入token

我用密码登录不上,然后换token最后登录上去了。不过有时后你在linux上输入了

jupyter notebook

输出的字段里面没有[1]中提到的在 地址后面跟着的 token=xxxx 的字段,可以使用

jupyter notebook list

将现在已经在运行的 jupyter notebook 以及它的 token打印出来

Jupyter Notebook远程连接服务器,本地浏览器登录不上_第1张图片
不过要注意,如果在运行jupyter notebook时没有指定程序在后台运行,list命令就无法输入,而后台运行jupyter notebook可以这样写:

nohup jupyter notebook &

这样,在服务器在运行jupyter 的时候,也可以输入命令。

4.补充

我在这里推荐一下 jupyter_notebook_config.py 文件需要修改的参数:

c.NotebookApp.password = u’sha1: xxxxx’ // xxxx是passwd()打印的字符串
c.NotebookApp.ip= ‘*’
c.NotebookApp.open_browser = False //执行程序时不打卡服务器的浏览器
c.NotebookApp.port = 8889 //自定义端口
c.NotebookApp.allow_remote_access = True //允许远程访问
c.NotebookApp.allow_root = True // 允许root权限的命令被执行
c.NotebookApp.notebook_dir = ‘/work_path’ //这里写本地浏览器远程访问服务器时的工作目录

注意,以上变量在填写完毕后需要取消注释,也就是把这一行最前面的 ‘#’ 删掉。
此外我使用的本地ssh连接命令格式如下:

ssh [server_usrname]@[server_ip] -p [port] -N -L localhost:[8000]:localhost:8888

其中[ ]中的内容改成自己的信息,如果没有端口号,把 -p [port]删掉就行。这个地方本地映射端口不一定非得是8000,可以自定义
连接成功后打开你的浏览器,在地址栏输入

http://localhost:8000

回车就可以了,需要注意的是,在这一步之前,如果本地ssh没连接上,或者服务器 jupyter notebook没运行,是不会出现 jupyter页面的。
连接成功后输入 token 即可。
更新一下:我有遇到list后还是没token的情况,这种时候直接浏览器访问jupyter好像密码登录就可以了…[笑cry]

谢谢大家看到这里,如果对你遇到的问题有帮助,希望能给作者点个赞 ~~
如果有什么问题,欢迎评论区交流。

你可能感兴趣的:(问题记录,服务器,jupyter,linux)