A-A+

SSH 安裝與設定

2009年06月08日 Windows XP, 研究資源 評論 2 條

古早時代,最早用來遠端管理 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

搞定。

標籤: