SSH 安裝與設定
古早時代,最早用來遠端管理 Un*x 主機的方法,多半是使用 Telnet。不過,可怕的是:Telnet 協定是直接傳送「明碼」!也就是說,有心人士直接抓你的封包,你打的帳號、密碼指令,全部可以看得一清二楚!這很可怕吧?
解決的方法,最常見的就是改用 SSH。SSH 是 Secure Shell protocol 的縮寫,這是一個加密的協定,所以傳送出去的封包都是經過加密的,即使被擷取,也需要很大的功夫才能解開,比較安全。此外,SSH 也是一個會壓縮的協定,因此可以節省頻寬、加速傳遞資料等。不只如此,SSH 不只可以達到 Telnet 的遠端連線功能,還可以提供類似 FTP、但較安全的 sFTP 功能(FTP 也是明碼)等等等許多應用。
而 Ubuntu 預設是沒有安裝 SSH Server 的,那怎麼安裝呢?
安裝的方法很簡單:
# sudo apt-get install ssh
不過安裝完成後,建議改變一下相關的設定:
# sudo nano /etc/ssh/sshd_config
預設的 Port 是 22,有注意過相關 log 的人就知道,有很多無聊的人整天拿一堆帳號來 try,最好的辦法就是把它改掉!在最前面幾行就可以找到:
Port 22
改成你要的 Port。不過最好參考一下 /etc/service,不要用到其他服務的 Port。
接著往下可以找到:
PermitRootLogin yes
這個設定允許讓 root 直接登入。這就看個人了,我是覺得很可怕,可以改成:
PermitRootLogin no
來關閉 root 登入。
為了安全一點,可以在下面加上一行:
AllowUsers
來設定允許使用、登入的使用者名稱。例如帳號是 USERNAME 就是:
AllowUsers USERNAME
這樣就只有這個帳號可以登入。
注意:如果這邊沒有設定 root,雖然前面允許 root 登入,這樣還是會讓 root 無法登入。
如果要更安全,也可以去設定 /etc/hosts.allow 和 /etc/hosts.deny 來允許和拒絕某些來源的連線,服務名稱是 sshd。
大概是這幾樣,接著就是讓 ssh 重開來讀取新的設定:
# sudo /etc/init.d/ssh restart
搞定。