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
コメント