LoginSignup
9
8

Google Colaboratory に SSH接続して VSCode上から環境を利用する方法

Posted at

はじめに

Google Colaboratory は非常に便利で、簡単にGPUコンピューティングを利用できるようになってますが、Jupyter Notebook 形式 + α しか利用できないため、可読性が下がったり、ファイル分けが難しいため、これを簡単に利用したい。
そのため、Visual Studio Codeを利用して、あたかも自分のPC上で作業しているかのように扱うことが可能だとわかったので今回はその備忘録。

注意点

Google Colaboratoryの規約違反の可能性があるので、GPUコンピューティングを利用する際はProに入ることをお勧めします。

概要

cloudflared を利用してトンネリングから接続リンクまでを自動で作業してもらうという非常に優秀なツールがあったのでそれを使う。
作業の手順としては以下の通り。

  1. Google Colaboratory ファイルを Google Driveから作り、コードを貼り付けて実行
  2. 自分のPC上にcloudflared をインストール
  3. SSHの設定
  4. 接続!

非常に簡単である。

手順 (Mac)

後にWindowsも追記する予定

1. Notebook の作成

まずはホストするサーバーの起動をするために、Drive上に、Jupter Notebookを作成する。

  1. Google Drive の好きな場所に Google Colaboratory ファイルを作成して開く。
  2. ランタイム->ランタイムのタイプを変更からハードウェア アクセラレータGPUを選択する。
  3. 以下のプログラムをコードセルに貼り付け、任意のパスワードを指定して実行する。
    import os
    from google.colab import drive
    drive.mount('/content/drive')
    
    !pip install colab_ssh --upgrade
    from colab_ssh import launch_ssh_cloudflared, init_git_cloudflared
    launch_ssh_cloudflared(password="任意のパスワードを指定する")
    

2. PC に cloudflared をインストール

今回はHomebrewを利用してインストールするため、インストールしていない人は、Homebrewをインストールしてください。

brew install cloudflare/cloudflare/cloudflared

3. SSH設定を作成する

ssh コマンドで特定のホストについてどんなプロキシを利用するかを設定します。
~/.ssh/config というファイルに追記、または作成して記述します。
sshで自動でそのファイルを参照するので、特に同期などという作業は必要ないみたいです。

また、インストールしたcloudflaredの絶対パスを指定する必要があるので、以下のコマンドで取得して記述し直してください。<>はいりません。

which cloudflared
Host *.trycloudflare.com
	HostName %h
	User root
	Port 22
	ProxyCommand <cloudflaredの絶対パス> access ssh --hostname %h
パスが出なかった場合

パスが出なかった場合はパスが通っていないので以下のコマンドで存在を確認し、パスを作成します。

# これを実行し、cloudflaredが表示されていればインストールされています。
brew_path=`brew --prefix`; cd $brew_path/bin; ls | grep "cloudflared"

# これを実行して出力されるパスがcloudflaredの絶対パスです。
brew_path=`brew --prefix`; echo $brew_path/bin/cloudflared

接続!

作成した Jupter Notebook にコマンドが記述されているため、そちらで基本的に実行できます。
以下はそのコマンドのコピーです。

SSH

ssh little-representations-establish-audit.trycloudflare.com

Visual Studio Code

  1. 左下の< > マークをクリックし、 上に出てくるパレットからSSHを選択します。
  2. 以下のコマンド(リンク)を入力します。
little-representations-establish-audit.trycloudflare.com

入力画面は、左下の < > アイコン → ホストに接続する、で表示させることができます。

データの保存するパスについて

リモート環境はランタイムを削除するとリセットされてしまうので、Google Drive上に保存することをお勧めします。

リモート環境の接続時にパスを設定しますが、以下のパスで保存場所をGoogle Driveにすることができます。

/content/drive/MyDrive/これ以降のパスは個人的に設定することができます。

参考

9
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
8