本地机器 Google Colab 通过 SSH 连接远程服务器

1. 情景描述

我自己笔记本配置太垃圾,想要用学校的深度学习服务器在Colab上跑程序。

2. 环境描述

远程服务器 (Ubuntu):
  1. 用pip安装 jupyter notebook 以及 jupyter_http_over_ws 拓展包 (前提有python环境和pip)
pip install notebook
pip install jupyter_http_over_ws
jupyter serverextension enable --py jupyter_http_over_ws
  1. 安装并开启 ssh 服务
sudo apt-get install openssh-server
sudo systemctl enable ssh
sudo systemctl start ssh

查看ssh服务是否正常运行:

sudo systemctl status ssh
  1. 需要一个账号,和IP地址
    假设账号名称是username。
    IP 地址可以通过 ifconfig 查到,这里假设为 192.168.0.1。
本地机器(笔记本):
  1. SSH 连接工具
    Mac OS 自带 SSH 连接, 只需要在terminal输入 ssh [email protected] 这里的账号和IP换成你自己的信息。

Windows SSH 的连接工具有很多,Putty, Xshell, Bitvise,这里就不赘述了。能够用SSH连上远程服务器就行。

  1. Google Colab
    能运行就行

3. 对接!

1. 在远程服务器上打开jupyter notebook, 并允许Colab 进行访问。

jupyter notebook --NotebookApp.allow_origin='https://colab.research.google.com'  --port=8888  --NotebookApp.port_retries=0

运行成功后,命令行会生成两个链接,格式类似于:

http://localhost:8888/?token=abc123

复制这个连接,之后要用。

2. 在本地机器上SSH连接服务器

# 将  替换为在上述步骤中选择的端口号 8888
# 将  替换为远程服务器用户名 username
# 将  替换为您的远程服务器地址 192.168.0.1

ssh -L 8888:localhost:<PORT> <REMOTE_USER>@<REMOTE_HOST>

在我们的例子中即为

ssh -L 8888:localhost:8888 [email protected]

3. 打开Colab

选择local runtime.
本地机器 Google Colab 通过 SSH 连接远程服务器_第1张图片
输入第一步在远程服务器上生成的链接 http://localhost:8888/?token=abc123。(这里讨了个巧,将两台机器的端口设成一致的,就不用更换url了)

这时应该可以在本地colab使用远程服务器运行程序了。

REFERENCE

[1] https://www.cyberciti.biz/faq/ubuntu-linux-install-openssh-server/

[2] https://docs.anaconda.com/anaconda/user-guide/tasks/remote-jupyter-notebook/

[3] https://research.google.com/colaboratory/local-runtimes.html

以上。

你可能感兴趣的:(Python,ssh,服务器,linux,jupyter)