0、前置条件
- 一台搭载了Linux系统的服务器(无需图像界面,最好配置好密钥-全文使用密钥访问服务器而非密码,安全性高)
- 一台搭载了Windows的PC以及浏览器
- 连接服务器的操作软件(如PuTTY、MobeXterm、WinSCP)
一、服务器端配置:Linux Notebook
1、命令行安装以及配置notebook指令(最好保证notebook版本一致),windows直接用Anaconda安装
pip install --upgrade jupyter==1.0.0 -i https://pypi.douban.com/simple
2、配置notebook
jupyter notebook --generate-config //生成配置文件(注意文件生成位置在执行这个指令的位置)
ipython //进入ipython 命令行模式
//设置密码
from notebook.auth import passwd
passwd()
输入你的明文密码:如helloworld
// 保存好输出结果引号里面的密钥:Out[2]: 'sha1:xxxxxxxxxxxxxxxxx' 即sha1:xxxxxxxxxxxxxxxxx
3、修改Notebook配置文件(位于./jupyter/jupyter_notebook_config.py)
c.NotebookApp.ip='*' //如果使用notebook自带的远程工具使用方法,则必填
c.NotebookApp.password = u'sha1:xxxxxxxxxxxxxxxxx' // 刚才复制的那个密文,必填
c.NotebookApp.open_browser = False //选填
c.NotebookApp.port = 8888 //可自行指定一个端口, 默认访问时使用该端口,选填
/*notebook自带的远程工具使用方法:浏览器输入'服务器ip:8888'*/
二、连接PC和服务器:Windows & Linux Notebook
2.1 建议使用SSH端口映射连接(可支持多用户使用)
1、在远程服务器上,启动jupyter notebooks服务(每次需执行,不建议使用screen执行,如果忘记杀掉的话会长期占用内存)(注意多用户情况下注意提前分配好端口号,选取1024-65535之间的并且尚未使用的端口号即可)
conda activate env_name
jupyter notebook --no-browser --port=8889 //可以选择用于映射端口号
2、(示例不可直接运行)在本地终端中启动SSH:其中: -N 告诉SSH没有命令要被远程执行; -f 告诉SSH在后台执行; -L 是指定port forwarding的配置,远端端口是8889,本地的端口号的8888
(注意使用密钥连接,原理是端口映射即把本地的8888端口映射到服务器的8889端口,后台执行则关闭终端后不会中断映射通道)
ssh -L localhost:8889:localhost:8889 username@serverIP -N -f //密码登录版本,一定要注意修改端口
ssh -L localhost:8889:localhost:8889 username@serverIP -i yourkeyfile -N -f //密钥登录版本
//-L 本机端口
//-f 后台启用,可以在本机直接执行命令,
// 无需另开新终端(暂时不知道杀死windows后台ssh的方法,
// 防止配置错误必须重启PC修改,因此不推荐使用-f)
//-N 不打开远程shell,处于等待状态,不跳到远程主机,还在主机上,只是搭好了隧道,桥搭好,不ssh上去
/*后台执行之后cmd没法ctrl+c正常退出,直接关闭终端即可。*/
3、浏览器访问端口进入
http://localhost:8888/
4、输入之前设置的明文密码
2.2 Windows密钥加载错误解决
将密钥移动到C:\Users\当前账户文件夹下