Google ColabにTailscaleを用いてSSH接続する方法

クラウド・サーバー

Google ColabにTailscaleを用いてSSH接続する方法

はじめに

Google Colabは、機械学習やデータ分析に役立つクラウドベースのJupyter Notebook環境です。このチュートリアルでは、TailscaleのVPNを使ってGoogle ColabにSSH接続する方法を解説します。これにより、安全かつ簡単にColabのランタイムにアクセスできるようになります。

事前準備

# Google Driveをマウントし、シングルマシン用のディレクトリを作成します。
from google.colab import drive
drive.mount('/root/gdrive')
!mkdir /root/gdrive/MyDrive/ColabSingularity

# シングルマシン用ディレクトリへのシンボリックリンクを作成し、アクセスしやすくします。
!ln -s /root/gdrive/MyDrive/ColabSingularity /root/sing

ホスト名の設定

# ホスト名を設定します。後でTailscaleの設定で使用します。
!hostname Maki.Colab.Singularity

SSHの設定

ssh_configファイルの設定

Host makicolabsingularity
    HostName makicolabsingularity 
    User root
    IdentityFile "C:\Users\Aslan\.ssh\id_rsa_colab"

SSHサーバーのインストールと設定、公開鍵の登録

# SSHサーバーをインストールし、rootログインを許可します。
!apt update ; apt install openssh-server
!echo 'PermitRootLogin yes' >> /etc/ssh/sshd_config

# SSHの設定ディレクトリを作成します。
!mkdir /root/.ssh

# ユーザーデータから公開鍵を取得して登録します。
public_key = userdata.get('COLAB_SINGULARITY_SSH_PUBLIC_KEY')
!echo '{public_key}' >/root/.ssh/authorized_keys

# SSHサーバーを起動します。
!service ssh start

Tailscaleのインストールと設定

# Tailscaleをインストールします。
!curl -fsSL https://pkgs.tailscale.com/stable/ubuntu/focal.noarmor.gpg | sudo tee /usr/share/keyrings/tailscale-archive-keyring.gpg >/dev/null 
!curl -fsSL https://pkgs.tailscale.com/stable/ubuntu/focal.tailscale-keyring.list | sudo tee /etc/apt/sources.list.d/tailscale.list
!apt-get update
!apt-get install tailscale

# Tailscaleの状態ファイル用ディレクトリを作成します。
!mkdir /var/lib/tailscale

# Tailscaleデーモンをバックグラウンドで起動し、Tailscaleネットワークに参加します。
!nohup tailscaled --tun=userspace-networking --socket=/run/tailscale/tailscaled.sock --port 41641  >/dev/null 2>&1 &
!tailscale up

# 状態ファイルを保存します。
!cp /var/lib/tailscale/tailscaled.state /root/sing/

まとめ

以上で、Google ColabにTailscaleを用いてSSH接続する方法の解説は終わりです。この方法を使えば、安全かつ簡単にColabのランタイムにアクセスできます。機械学習やデータ分析のプロジェクトを進める際に、ぜひ活用してみてください。

GoogleColabノートブック

Google Colab

コメント

タイトルとURLをコピーしました