星期三, 2月 18, 2009

設定Mac OS X的SSH,以公、私金鑰實作免帳號密碼登入

筆者的MAC電腦因為是放在固定IP上並提供許多的服務,(例如:網路電視以CyTV實作,我人在外時可以連回家看Animax),必需在寬頻分享器打開相關的Port,而有門戶大開的風險。SSH是一個加密的通訊協定,建立起來的通道可以實作Port forwarding,我在寬頻分享器上防火牆上只要打開一個通道給SSH通過就可以,可以減少被攻擊成功的機率。
而SSH Port forward除了用於安全存取其它服務以外,也可以用於穿越公司防火牆上MSN(大部份公司會擋MSN的Port,但不見得會去擋SSH的Port22,畢竟有加密通訊的需求),相關的方法網路上已經有許多的中文文章在介紹了,我建議請參考底下連結,裡頭有詳解Port forwarding轉埠的方法。

SSH雖然安全,但如果連上的機器一開始就是偽裝的,你的帳號與密碼自然也就被人看光光了。為了預防這個問題,SSH還支持基於金鑰的安全驗證。實作的方法,可以參考Mac OS X的近親-Linux的作法,例如這篇文章:
然後還要關掉SSH預設允許以帳號加密碼登入,減少攻擊者嘗試以暴力法攻擊帳號和密碼。
但很快就遇到了一問題,在Mac OS X裡找不到目錄 /etc/ssh/sshd_config 這個設定檔。後在看到了這篇文章 http://www.macosxhints.com/article.php?story=20050815135941513 在Mac OS X裡 sshd_config 的設定檔的路徑是在 /etc/sshd_config 這裡,我們以 sudo vi /etc/sshd_config 編輯這個設定檔修改以下這兩行:
PasswordAuthentication no
ChallengeResponseAuthentication no
前面的 # 符號記得去掉。
重新啟動SSH服務,就大工告成。如果一切順利的話,當你以SSH嘗試帳號密碼登入時,就會拒絕你登入。
創用 CC 授權條款
瑀的貓、田園與電腦點點滴滴何崧瑀製作,以創用CC 姓名標示-非商業性-禁止改作 3.0 台灣 授權條款釋出。