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