連線到工作站與 SSH

  • What is SSH (Secure SHell)

用了這麼久 ssh ,都沒有啥疑惑,直到最近上了網通,才想要多了解這到底是蝦米碗糕。於是乎就查了一番,發現竟然跟 RSA (公開金鑰密碼) [ 註1 ] 有點關係?[ 註2 ]

SSH 其實只是為 2 台主機建立「安全」連線的指令,達到遠端操控電腦的效果。

安 . . . 全 ??? 沒錯,因為上一代的連線指令被發現有漏洞使資料可以被竊聽,所以就有神人弄了個新東西出來。(傳送的資料不會被加密,見下圖)

未加密的資料在傳送過程中能夠被輕易竊取 (來源 : Computerphile)

SSH 藉由公開金鑰密碼進行加密,進而確保資料只能被雙方辨識,不會被竊聽。公開金鑰密碼簡單來說,可以拆成 3 個步驟 :

  1. 做一套唯一互相搭配的鑰匙和鎖,「只把鎖」丟給要傳訊息給你的人
  2. 叫那個人用鎖把訊息鎖起來,丟回來給你
  3. 很神奇的,只有你能開那個鎖起來的訊息呢!( . . . . )

看到這裡,大家一定都會覺得這是什麼鬼,怎麼會有這種奇葩的 鑰匙&鎖 存在,但是實際上,就是有人用數學做出了性質一樣的算式,而 公開金鑰密碼 也是現時最常使用的加密方法之一喔~

有空的話可以再做一篇針對 RSA 運作原理的文 (雖然有空系列截至目前為止進度是 0% 呢 ! )


  • 連線到工作站 (ssh)
ssh [User Name]@[Host Name]
/* ex. ssh retard@cherry.cs.nccu.edu.tw */

按下 Enter 再輸入自己用戶的密碼,就能連線到遠端主機囉~

第一次登入會出現認證,跟隱私條款一樣,不用看,案「是」就對了(大霧)

這個指令其實一般用不太到,除非你是政大資科一年級又沒棄修CP1/2的話,才比較有機會用到。政大的CP課上傳/批改作業都要用帳號連上學校工作站。[ 註3 ]

如果自己有載 Linux 系統、又有修過自己編輯器環境(ex. vimrc)的話,寫作業的時候,其實不用忍受學校工作站的惡劣環境(要權限又改不了),直接在本地端寫完作業,再複製到工作站上繳交便可。

什麼,你說不知道怎麼複製到工作站上?


  • 複製檔案到異地 (scp — ssh + cp)
scp [From] [To]
/* ex. scp localfile user@sample.tw:~/dir 
       請在遠端機器網址加上':'再加上位置      */

如果還是嫌麻煩的話,就把這串指令設成 alias 存起來、順便把連上工作站的指令一並存了!

蛤?還不會 alias ? 去看鳥哥啦!


[ 註1 ] RSA 只是「公開加密金鑰」的其中一種算法而已,雖然 RSA 是最普遍的公開金鑰密碼算法,但是不能把 RSA 當作公開金鑰本身,應該適當釐清 2 者關係,RSA 只是眾多公開加密算法的其中一種

[ 註2 ] ssh 支援一定程度的不同公開加密算法 (ex. DSA)

[ 註3 ] 據我所知,台大 CSIE 交作業的地方是類似 Leetcode 那樣的登入以及使用者上傳界面,雖然本直上跟政大的差不了多少,但光是界面從圖像變成指令就會使人心驚驚阿