通過Deploy Key讓Colab使用Github Private Repository

動機(jī)

colab有諸多不便贮折,如更換runtime和超時昨凡,本地文件會丟失导街。如果掛載google drive在項目層面上也很不方便耻蛇,唯一方便的是使用github repository吭从,但是如果是非公開的repo也很大費(fèi)周章番刊。這里我提供通過deploy key讓colab相對一勞永逸使用github非公開repository的方法。這在項目開發(fā)上會比較有用影锈。

思路

通過colab的一個runtime的公鑰在github上建立一個專門給colab用的deploy key芹务,然后保存下對應(yīng)的私鑰。以后每次開colab鸭廷,就都創(chuàng)建一次同一個私鑰文件枣抱,就可以每次git clone(或其他操作,如果賦予write權(quán)限)同一個github的私密repository了辆床,完全不依賴密碼佳晶,非常適合小組工作。

具體操作

第一部分:預(yù)備 (只需要做一次就一勞永逸)

  1. 打開一個colab讼载,開一個runtime創(chuàng)建一對公鑰和私鑰
! ssh-keygen -t rsa -b 4096
  1. 顯示公鑰轿秧,把顯示的內(nèi)容復(fù)制粘貼進(jìn)colab - 項目setting - deploy key - add new key的對話框里中跌,創(chuàng)建一個部署密鑰
! cat /root/.ssh/id_rsa.pub
  1. 復(fù)制私鑰做一個備份,隨后顯示私鑰菇篡,并且復(fù)制私鑰內(nèi)容
! cp /root/.ssh/id_rsa /root/.ssh/id_rsa_backup
! cat /root/.ssh/id_rsa
  1. overwrite私鑰文件漩符,把剛剛復(fù)制的私鑰黏貼進(jìn)<openssh private key target>的內(nèi)容里
with open("/root/.ssh/id_rsa", mode="w") as fp:
    fp.write("""<openssh private key target>""")
  1. 測試是不是可以成功git clone,如果成功跳過第二部分的debug直接去第三部分驱还,如果這部分失敗務(wù)必保留現(xiàn)在在的colab runtime不能斷開嗜暴,去第二部分
! ssh-keyscan -t rsa github.com >> ~/.ssh/known_hosts
! chmod go-rwx /root/.ssh/id_rsa
! git clone git@github.com:<username>/<repository_name>.git

第二部分:debug第一部分

因為在/root/.ssh/的位置手動重寫私鑰文件id_rsa時很可能因為多了一個回車和漏了一個回車導(dǎo)致私鑰的格式不對而導(dǎo)致失敗,這時剛才創(chuàng)建的備份就起了作用议蟆,用下面的命令來檢查自己寫的write命令對不對闷沥,多數(shù)情況能告訴你那里漏了回車,重復(fù)debug直到你能通過第一部分的測試咐容,那時你獲得了正確的write命令舆逃,而這條命令在第三部分至關(guān)重要。

! diff /root/.ssh/id_rsa /root/.ssh/id_rsa_backup

第三部分:正式部署

這部分是你每次打開一個新的colab或者新的runtime需要做的了戳粒,就是手動把記錄下來的私鑰寫進(jìn)文件路狮,它和第一部分的測試內(nèi)容是基本一致的,第二個write命令也就是你第二部分小心調(diào)試后的成果享郊。

! mkdir -p /root/.ssh
with open("/root/.ssh/id_rsa", mode="w") as fp:
    fp.write("""<openssh private key target>""")
! ssh-keyscan -t rsa github.com >> ~/.ssh/known_hosts
! chmod go-rwx /root/.ssh/id_rsa
! git clone git@github.com:<username>/<repository_name>.git

到這里配置就完成了,未來只需要第三部分的4條命令孝鹊,就可以在colab或本地notebook里快捷地使用你的private git repository了炊琉,當(dāng)您想要中止權(quán)限時,只需要在github里刪除部署密鑰即可又活。

2023年4月18日
威玲旺卡

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末苔咪,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子柳骄,更是在濱河造成了極大的恐慌团赏,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,214評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件耐薯,死亡現(xiàn)場離奇詭異舔清,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)曲初,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評論 2 382
  • 文/潘曉璐 我一進(jìn)店門体谒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人臼婆,你說我怎么就攤上這事抒痒。” “怎么了颁褂?”我有些...
    開封第一講書人閱讀 152,543評論 0 341
  • 文/不壞的土叔 我叫張陵故响,是天一觀的道長傀广。 經(jīng)常有香客問我,道長彩届,這世上最難降的妖魔是什么伪冰? 我笑而不...
    開封第一講書人閱讀 55,221評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮惨缆,結(jié)果婚禮上糜值,老公的妹妹穿的比我還像新娘。我一直安慰自己坯墨,他們只是感情好寂汇,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,224評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著捣染,像睡著了一般骄瓣。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上耍攘,一...
    開封第一講書人閱讀 49,007評論 1 284
  • 那天榕栏,我揣著相機(jī)與錄音,去河邊找鬼蕾各。 笑死扒磁,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的式曲。 我是一名探鬼主播妨托,決...
    沈念sama閱讀 38,313評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼吝羞!你這毒婦竟也來了兰伤?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,956評論 0 259
  • 序言:老撾萬榮一對情侶失蹤钧排,失蹤者是張志新(化名)和其女友劉穎敦腔,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體恨溜,經(jīng)...
    沈念sama閱讀 43,441評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡符衔,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,925評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了糟袁。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片柏腻。...
    茶點(diǎn)故事閱讀 38,018評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖系吭,靈堂內(nèi)的尸體忽然破棺而出五嫂,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 33,685評論 4 322
  • 正文 年R本政府宣布沃缘,位于F島的核電站躯枢,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏槐臀。R本人自食惡果不足惜锄蹂,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,234評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望水慨。 院中可真熱鬧得糜,春花似錦、人聲如沸晰洒。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽谍珊。三九已至治宣,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間砌滞,已是汗流浹背侮邀。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留贝润,地道東北人绊茧。 一個月前我還...
    沈念sama閱讀 45,467評論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像打掘,于是被迫代替她去往敵國和親华畏。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,762評論 2 345

推薦閱讀更多精彩內(nèi)容