現在,安全外殼協議(SSH)幾乎已經成為進行遠程登錄操作時的必備選擇。有很多方法可以增強SSH的安全性,但哪種方法既簡單又有效呢?下面,就讓我們來了解認識一下。
現在,安全外殼協議幾乎已經完全成為進行遠程登錄操作時的必備選擇。對於很多管理員來說,使用它已經屬於默認的要求。但問題的關鍵是,情況也並不是象大家想象的那麼肯定,安全外殼協議提供的安全性也需要進行設置增加效果。現在,有很多種方法可以將安全措施提升到更高的級別,但哪些是最容易部署,安全性最高的呢?下面,就讓我們來了解認識一下。
基於ssh的密鑰認證
不論用戶怎樣降低使用頻度,但只要還是使用密碼登錄的話,就可能出現被破解的情況。這是一個永遠存在的安全漏洞。但是,通過使用基於ssh的密鑰認證,問題就可以獲得解決。只要設定一個密鑰,然後將密鑰復制到指定機器上,就可以完成設置,下面給出的就是具體實施步驟(請注意:這些步驟針對的是基於Ubuntu的客戶機和服務器):
本地系統
打開一個終端窗口並輸入命令ssh-keygen -t dsa。該命令將生成一個公鑰,接下來要做的就是利用ssh-copy-id -i ~/.ssh/id_dsa.pub 用戶名@目標地址命令將其復制到服務器上,在這裡,用戶名指的是遠程計算機上實際使用的用戶名,目標地址指的是遠程計算機的實際地址。
現在,當使用者嘗試利用遠程計算機進行登錄的話,將被要求提供證書而不是用戶密碼。
對於使用圖形界面系統的用戶來說,可以選擇點擊打開系統|首選項|密碼和加密密鑰設置。從該圖形界面(參見圖A)中選擇個人密鑰欄,點擊文件|新建|安全外殼協議密鑰項,按照創建指南的提示完成設置。
圖A
該工具可以對所有密碼和私人密鑰進行管理。
一旦密鑰得以創建,就可以通過右鍵單擊打開,進行安全外殼協議密鑰的設置。在新窗口中,使用者可以鍵入計算機的名稱(遠程系統)和登錄名。請注意:這麼做之前,務必確保在遠程計算機上已經存在登錄名。
如果使用者采用的是Windows來登錄ssh功能服務器的話,可以選擇使用密鑰對生成工具PuTTYgen。下載並啟動PuTTYgen,點擊生成按鍵,將鼠標移動到其它位置(在創建階段),保存公共密鑰,並將其復制到ssh服務器上。
請注意:為了以防萬一,大家應該選擇始終對密鑰進行強制密碼保護。因為,如果在設置的時間選擇容許密鑰認證模式的話,可能會發現一些用戶選擇創建無密碼密鑰(基於易用性的考慮)。這種做法屬於不安全的。
阻止對根的訪問
對於所有系統來說,容許基於安全外殼協議的訪問屬於關鍵之一。打開文件/etc/ssh/sshd_config,查找這一行:
PermitRootLogin
確保上面的行設置為否定。正確的行應該是:
PermitRootLogin no
一旦對文件的更改和保存操作完成,就可以輸入命令:
sudo /etc/init.d/ssh restart
現在,如果出現嘗試利用ssh作為根用戶登錄到服務器上情況的話,訪問就會被直接拒絕。
調整端口號
我相信將安全模糊化並不能帶來真正的安全。但是針對安全外殼協議的情況,設置越多安全性就越高。因此,我非常支持將安全外殼協議的默認22號端口調整為非標准端口。為了做到這一點,需要打開/ etc/ssh/sshd_config文件,並查找此行(靠近頂部):
Port 22
將端口號調整為沒有使用的其它非標准端口。需要注意的是,所有連接到該系統上的用戶都應該了解到端口號方面的調整。在進行了調整之後,也需要重新啟動ssh服務。
利用命令行連接非標准端口時間,需要使用這樣的命令:
ssh -p 端口_數字 -v -l 用戶名 網絡地址
在這裡端口_數字就是非標准端口,用戶名就是連接時使用的用戶名,網絡地址就是遠程系統的地址。
最後的思考
總體而言,對於遠程系統來說,安全外殼協議是一種相當安全的連接方式。但是,只要在默認的基礎上進行小小的調整,就可以達到非常安全的狀態......花費少量時間就可以換來安全方面的極大提高。作為一條標准的重要經驗,使用者應該牢記,在任何情況下,都應該禁止根登錄......所有超過這一限度的行為都是眾所周知的糖衣炮彈。