Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Colabをshellから使う
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
SATOH Kiyoshi
March 22, 2022
Technology
170
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Colabをshellから使う
2019/08/10のNSEG勉強会で話した内容です。
Colab上でshellを使う手法の紹介と、自サーバへのリモートフォワードで使う方法を説明します。
SATOH Kiyoshi
March 22, 2022
More Decks by SATOH Kiyoshi
See All by SATOH Kiyoshi
生成AIの「現在地」だけでなく「速度」も見よう
stealthinu
0
1.8k
MCPとエージェント
stealthinu
1
2k
意外に詐欺師がいるという教訓
stealthinu
0
200
RAGの仕組みとよくある課題
stealthinu
1
3.6k
音声変換と生成AI:開発者視点からの1.5年の振り返り
stealthinu
0
2.6k
リアルタイムボイスチェンジャーMMVCとVITSの紹介
stealthinu
0
2.8k
ディープラーニングブームは続くのか
stealthinu
0
160
スパム対策お焚き上げ
stealthinu
0
120
えせソアリンを作る
stealthinu
0
170
Other Decks in Technology
See All in Technology
アクセスキーこわい やめかたと漏らさない工夫
sassssan68
1
410
事業課題から技術的負債に向き合う
sansantech
PRO
2
2k
Claude Code本って、 読む必要あるの?
oikon48
2
480
HHKBエバンジェリストになる方法
941
0
110
株式会社シーエーシー エンジニア向け会社紹介資料
cac
0
57k
データ_AIの事業の勝敗をわけるもの
nek0128
1
450
例外の正しい扱い方 そのエラー try-catchして大丈夫?
jinwatanabe
3
520
TinyGo 開発サイクルを高速化する:Go で作るエミュレータ入門
zozotech
PRO
1
750
The Knowledge Spine: A Machine-Executable Ontology for Governed Marketing Activation
vananth22
0
100
SREは、MCPとAutopilotをこう使え!
kazumax55
3
890
バイブコーディング時代のWebアプリ開発入門~Cloud Runで学ぶセキュアなビルドとデプロイ
waiwai2111
1
140
あるけみー式LTスライド作成術
alchemy1115
2
220
Featured
See All Featured
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.6k
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
2
430
The browser strikes back
jonoalderson
0
1.7k
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
240
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
250
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.8k
sira's awesome portfolio website redesign presentation
elsirapls
0
410
Color Theory Basics | Prateek | Gurzu
gurzu
1
470
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.6k
Practical Orchestrator
shlominoach
192
12k
30 Presentation Tips
portentint
PRO
1
400
Transcript
Colab をshell から使う Colab をshell から使う 2019/8/10 さとうきよし
Colab とは Colab とは 無料でGPU/TPU 付きサーバを使えるサービス Web(Jupyter) 上からPython 環境が即利⽤可能 最⾼!
Colab の構成 Colab の構成 接続時にlinux のコンテナが起動 Web(Jupyter) 上から操作を⾏う コンテナ種によりGPU かTPU
が利⽤できる 完全に独⽴した環境なのでインストールも可能 コンテナは連続12 時間までしか稼働出来ない
コマンドの実⾏ コマンドの実⾏ Python の他にコマンドも実⾏可能 !cat /etc/debian_version !apt install sshd だがセルからしか実⾏できないため結構不便
外からの接続は出来ない 外からの接続は出来ない 外には出ていけるが外からは接続できない コンテナから外にトンネルを作りそこ経由で接続
ngrok というサービス ngrok というサービス ローカル上のものを外から接続可能にするサービス テストで動かしてるWeb サービスを⼀時的に接続可に 特定サーバ・ポートにアクセスするとフォワードする serveo という同種のサービスもある
Colab からngrok を利⽤ Colab からngrok を利⽤ sshd とngrok をコマンドで⼊れて利⽤ 下記内容をセルに貼って実⾏
import random, string, urllib.request, json, getpass #Generate root password password = ''.join(random.choice(string.ascii_letters + string.digits) for i in range(20)) #Download ngrok ! wget -q -c -nc https://bin.equinox.io/c/4VmDzA7iaHb/ngrok-stable-linux- ! unzip -qq -n ngrok-stable-linux-amd64.zip #Setup sshd ! apt-get install -qq -o=Dpkg::Use-Pty=0 openssh-server pwgen > /dev/null #Set root password ! echo root:$password | chpasswd ! mkdir -p /var/run/sshd ! echo "PermitRootLogin yes" >> /etc/ssh/sshd_config ! echo "PasswordAuthentication yes" >> /etc/ssh/sshd config https://stackover ow.com/questions/48459804/how-can-i- ssh-to-google-colaboratory-vm
ngrok の問題 ngrok の問題 時々切れる ちょっと重い ngrok へのログインがだるい セキュリティ上の懸念(MITM) がちょっと不安
ssh のリモートフォワード ssh のリモートフォワード 固定IP のサーバがあればngrok と同様のことが可能 local から実⾏ ssh
-R 8081:target:80 remote /etc/ssh/sshd_con g にリモート接続許可する設定が必要 GatewayPorts yes https://qiita.com/mechamogera/items/b1bb9130273deb9426f5
Colab→ ⾃サーバへのトンネル Colab→ ⾃サーバへのトンネル Colab 側から⾃サーバへトンネルを張る ⾃サーバからトンネル伝ってssh 接続 Colab 側から実⾏
ssh -fNR 20022:target:22
[email protected]
dev.example.jp から実⾏ ssh -p 20022 root@localhost
⼊⼒が出来ない問題 ⼊⼒が出来ない問題 プロンプトからのパスワード⼊⼒等が出来ない パスワード⼊⼒はフォーム機能で⼊れる パスワード受け渡しはSSH_ASKPASS で回避 HostKeyChecking もオプションで回避 proxy_password =
'password' #@param {type:"string"} !echo "echo $proxy_password" > proxy_password.sh !chmod +x proxy_password.sh get_ipython().system_raw( 'export SSH_ASKPASS=/content/proxy_password.sh; export DISPLAY=dummy:0; setsid ssh -oStrictHostKeyChecking=no -fNR 20022:localhost:22
[email protected]
&')
Colab 側sshd の起動 Colab 側sshd の起動 先にsshd を⼊れて起動しておく LD_LIBRARY_PATH の設定無いとエラーになるので注意
import random, string, urllib.request, json, getpass password = ''.join(random.choice(string.ascii_letters + string.digits) for i in range(20)) print(f'Root password: {password}') ! apt-get install -qq -o=Dpkg::Use-Pty=0 openssh-server pwgen > /dev/null ! echo root:$password | chpasswd ! mkdir -p /var/run/sshd ! echo "PermitRootLogin yes" >> /etc/ssh/sshd_config ! echo "PasswordAuthentication yes" >> /etc/ssh/sshd_config ! echo "ClientAliveInterval 30" >> /etc/ssh/sshd_config ! echo "GatewayPorts yes" >> /etc/ssh/sshd_config ! echo "LD_LIBRARY_PATH=/usr/lib64-nvidia" >> /root/.bashrc ! echo "export LD_LIBRARY_PATH" >> /root/.bashrc get_ipython().system_raw('/usr/sbin/sshd -D &')
問題点 問題点 ⾃サーバがない → GCE の無料枠で踏み台サーバを⽴てる パスワードの受け渡し⽅ フォーム機能だとノートにパスワードが残る
Colab でshell 使えるの便利 Colab でshell 使えるの便利 ディープラーニングもののプロダクトの実験に便利 ⾃宅に⾼いGPU 積んだマシンなくても気軽に試せる