Ubuntu SSH 私匙和公匙的產生原理闡述

SSH(SecureShell)是目前比較可靠的爲遠程登錄會話和其他網絡服務提供安全性的協議。利用SSH協議可以有效防止遠程管理過程中的信息泄露問題。通過SSH,可以把所有傳輸的數據進行加密,也能夠防止DNS欺騙和IP欺騙。下面介紹的是Ubuntu中SSH的概念和使用的方法,具體內容如下所述。

什麼是SSH

SSH的英文全稱是SecureSHell,SSH協議族由IETF(InternetEngineeringTaskForce)的NetworkWorkingGroup制定,SSH協議的內容SSH協議是建立在應用層和傳輸層基礎上的安全協議。通過使用SSH,你可以把所有傳輸的數據進行加密,這樣”中間人”這種攻擊方式就不可能實現了,而且也能夠防止DNS和IP欺騙。還有一個額外的好處就是傳輸的數據是經過壓縮的,所以可以加快傳輸的速度。

傳統的網絡服務程序,如FTP、Pop和Telnet其本質上都是不安全的;因爲它們在網絡上用明文傳送數據、用戶帳號和用戶口令,很容易受到中間人(man-in-the-middle)攻擊方式的攻擊。就是存在另一個人或者一臺機器冒充真正的服務器接收用戶傳給服務器的數據,然後再冒充用戶把數據傳給真正的服務器。

SSH,還有一個額外的好處就是傳輸的數據是經過壓縮的,所以可以加快傳輸的速度。SSH有很多功能,它既可以代替Telnet,又可以爲FTP、Pop、甚至爲PPP提供一個安全的”通道”。

最初SSH是由芬蘭的一家公司開發的。但是因爲受版權和加密算法的限制,現在很多人都轉而使用OpenSSH。OpenSSH是SSH的替代軟件,而且是免費的,可以預計將來會有越來越多的人使用它而不是SSH。SSH是由客戶端和服務端的軟件組成的。SSH安裝容易、使用簡單,而且比較常見,一般的Unix系統、Linux系統、FreeBSD系統都附帶有支持SSH的應用程序包。

讓Ubuntu啓動SSH服務

這個不用多說了,還是apt-getinstall大法:

   
   
  1. #sudoapt-getinstallssh 

不使用私鑰的SSH還是有一定風險的。現在我們嘗試在ubuntu服務器上生成私鑰和公鑰

   
   
  1. #ssh-keygen 

後面會提示你私鑰的文件名,放在哪,這些問題,選擇默認就行了,中途會讓你輸入密碼,這個你可得記住。這樣你的用戶目錄下會多出一個隱藏的.ssh文件夾。可以使用ls-A來查看。裏面還有兩文件,一個是id_rsa(私鑰),還有一個是id_rsa.pub(公鑰)

 此時用戶目錄的.ssh目錄下生成id_rsa(私鑰)、id_rsa.pub(公鑰)

    命令:cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys


這個私鑰和公鑰到底是什麼概念?

簡單說,公鑰就是你的銀行帳戶,這個可能別人也知道,但只有手上有信用卡或是存摺纔能有資格去試帳戶密碼。所以這個信用卡和存摺就是你的私鑰。所以這個私鑰得保存好。

也就是說,那個id_rsa文件你得保存好,可以弄到U盤上,隨身帶着。而id_rsa.pub得改成系統默認識別的authorized_keys並保存在.ssh文件夾下

現在服務器已經可以有兩種方式的登陸了,一種就是直接用戶密碼識別登陸,還有一個是RSA登陸。當然,後面那個比較安全,那麼我們就把服務器還有一種登陸方式給去掉。

找到etc/ssh/sshd.conf這個文件,它是負責服務器端上的設置的:

#最好把這個選項設置成“PermitRootLoginwithout-password”,這樣“root”用戶就不能從沒有密匙的計算機上登錄。把這個選項設置成“no”

#將禁止“root”用戶登錄,只能用“su”命令從普通用戶轉成“root”。

   
   
  1. PermitRootLoginwithout-password 

#把這個選項設置爲“no”只允許用戶用基於密匙的方式登錄。

   
   
  1. PasswordAuthenticationno 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章