Cyber Coding Course

師其意,不泥其跡

如何從我們的Server透過ssh連線到colab?

網路上好像有很多colab ssh介紹。
這裡我介紹,我用自己的連線方式,透過自己寫的bash連線到colab。

如何做到的,概念上很簡單,

這支bash會在colab的VM上安裝OpenSSH Server,
並且隨機產生自己的OpenSSH的公金鑰匙對(SSH key pairs)。

然後,透過這支bash,我們也提供自己主機的連線資訊給他,
主機的「使用者名稱」、「主機位置]及「要建立ssh通道的連接埠」,跟我們自己的「OpenSSH公鑰」。

這支bash能把我們提供的公鑰加入到colab的 /root/.ssh/authorized_keys ,
讓我們取得登入colab root VM的權限。

然後colab vm上,也會提供他隨機的產生公鑰(/root/.ssh/authorized_keys)給我們,
將他加到我們主機的${HOME}/.ssh/authorzed_keys內,讓colab有權限連到我們的主機,

因此在Colab上執行的這隻Bash就可以幫我們建立VM與我們主機的SSH通道囉。

當加密的通道建立完成,我們便可穿透防火牆,
登入到colab的VM啦。



看看Demo吧。

免費的GPU,拿來跑Python真棒。:D
我的 colab_ssh Github。

附註: 如果斷線了,使用的是相同的連接埠,您可能需要刪除舊有的通道,或換一個連接埠。
您也可以使用GitHub中的clear_all_tunnels.sh清掉自已電腦中所有沒用的連線。




測試中,貼到瀏覽器的console,自動定時點擊,防止斷線用.
function ClickConnect(){
console.log("Working"); 
document.querySelector("colab-toolbar-button#connect").click() 
}
setInterval(ClickConnect,60000)


作者: Devin Yang