其实这篇文章没必要存在,教程太多了
参考博客(1 2 3),如侵删
奈何网上的大神总是会漏掉一些凡人遇到的小问题
(1) 建议下载PuTTy for windows,从而建立与远程服务器的SSH连接
需要确认目标服务器的ip(或者网站地址) 端口号 以及用户名与密码
(2)搭建Python等环境,建议找一个好用的requirement
比如提前利用scp命令将自己要跑的,要复现的代码的requirement上传上去, 再用pip或者conda指令安装requirement的库
所以一个团队制作一个合格的requirement,确保涵盖大多需求是比较合理的
如何用scp将多个文件夹上传到服务器或下载回本地,参考博客(4)
例如将我 的本地代码 E:/GAN 文件目录下所有的文件,上传到身份为 root 的远程服务器 1.1.1.1 的文件路径 home/me 上
scp -r E:/GAN root@1.1.1.1:/home/me/
或者带端口 2222 的服务器
scp -P 2222 E:/GAN root@1.1.1.1:/home/me/
(3)因为重点想实现远程跑jupyter,本地可视化,所以需要额外的步骤
为避免小白重进坑,此处借鉴博客(1 2 3)的步骤加以修改
1 jupyter notebook远程访问设置
conda activate abc #激活虚拟环境[不在虚拟环境中可以省略此步骤]
pip install jupyter #安装
jupyter notebook --generate-config #生成配置文件
安装完成后,Jupyter会生成一个默认的配置文件。这个配置文件通常位于~/.jupyter/jupyter_notebook_config.json。
2 在服务器上生成加密密钥
为了安全地连接Jupyter Notebook,您需要生成一个加密密钥。首先,在终端输入python指令进行python环境,并依次执行:
from IPython.lib import passwd
passwd()
2.1 如果出现如下错误,(我出现了)
则可能是您的python版本过高,可以换条指令:
from notebook.auth import passwd
passwd()
如果仍然出现报错(是的,我还是):
可以继续换指令(下面指令在python3.8中不报错):
from jupyter_server.auth import passwd
passwd()
这三条指令都会提示您输入和确认一个密码。这个密码将被用于加密Jupyter Notebook的连接(复制密文备用,如下图所示)。
输入 exit() 就可以退出python环境。
3 修改服务器配置文件
执行以下指令进入Jupyter的配置文件~/.jupyter/jupyter_notebook_config.json。
vim ~/.jupyter/jupyter_notebook_config.py
此外,进入这个py文件后, 可以看到如下的内容。
如果你没看到,可能是没生成设置文件。 请再次尝试
jupyter notebook --generate-config #生成配置文件
linux系统服务器中可使用 :$
进行索引定位到文件底部。
小白可以当光标到达最后一个字符位置后,按下小写字母o就可以换行并允许输入了。然后在这个最后面增加如下内容:
c.NotebookApp.ip='*'
c.NotebookApp.password = u'argon2:xxxxxxxxxxxxxxxxxxx' # 先前备份的加密密钥
c.NotebookApp.port = 8888 # 随便设定一个端口
c.NotebookApp.open_browser = False
c.NotebookApp.allow_remote_access = True
c.NotebookApp.allow_root = True
c.NotebookApp.notebook_dir = '/project' # 定义notebook的起始路径
这里一定要确认自己的加密秘钥, 以及 最后的启示路径, 因为团队中可能会分配各自的文件夹,所以这里最好给自己分配为自己的文件夹。后续方便本地调试jupyter。
4 回到本地的windows(其他也行),利用cmd建立与远程服务器的链接
在您的本地机器上打开命令提示符或终端。使用SSH命令连接到远程服务器。例如,如果远程服务器的IP地址是192.168.0.100,用户名是root,端口号是50001,那么可以使用以下命令:
ssh -p 50001 root@192.168.0.100 -L127.0.0.1:8889:127.0.0.1:8889
当然,如果服务器给你的是一个网址,也可以直接把上述的服务器ip改成你的服务器网址。
5 在服务器上使用jupyter
当然,如果你是重新启动了服务器, 先激活自己的环境(activate),进入(cd)自己的文件夹后,启动jupyter:
jupyter notebook --no-browser
服务器会输出:
6 在本地浏览器上远程访问jupyter
http://localhost:8889/tree
然后就会出现
输入你设置的密码,忘了可以重新设置(看第2步)
这个教程比较粗糙,但是实测了几台本地机器没漏步骤。
这里的端口你自己设置哈, 我觉得8888还不错。
最后的使用
后续的调用, 重复 4 5 6 步骤,先CMD连接,再服务器启动jupyter,最后本地输入网址,操作服务器运行jupyter。 相对方便
第4步如果不知道服务器的ip,就在服务器端输入 hostname -I