歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> SSH原理和使用

SSH原理和使用

日期:2017/2/28 14:49:57   编辑:Linux教程

在Linux上工作,ssh是必須要了解的技術方法。它可以建立起多台主機之間的安全的加密傳輸,以進行遠程的訪問、操控、傳輸數據。

ssh是什麼

SSH為Secure Shell的縮寫。為建立在應用層和傳輸層基礎上的安全協議。

傳統的網絡服務程序,如FTP、POP和Telnet其本質上都是不安全的;因為它們在網絡上用明文傳送數據、用戶帳號和用戶口令,很容易受到中間人(man-in-the-middle)攻擊方式的攻擊。就是存在另一個人或者一台機器冒充真正的服務器接收用戶傳給服務器的數據,然後再冒充用戶把數據傳給真正的服務器。 而SSH是目前較可靠,專為遠程登錄會話和其他網絡服務提供安全性的協議。利用SSH協議可以有效防止遠程管理過程中的信息洩露問題。透過SSH可以對所有傳輸的數據進行加密,也能夠防止DNS欺騙和IP欺騙。 SSH之另一項優點為其傳輸的數據是經過壓縮的,所以可以加快傳輸的速度。SSH有很多功能,它既可以代替Telnet,又可以為FTP、POP、甚至為PPP提供一個安全的「通道」。 了解這麼多就好了,其實ssh連接也就是可以理解成經過加密的遠程訪問啦。

---(來自中文維基)

ssh連接的驗證、加密方式

ssh連接是CS模型(客戶端-服務器),客戶端發出連接申請,服務器對客戶端進行驗證,再考慮是否接受連接申請。

ssh的安全加密方式的理論基礎是非對稱加密體系。而非對稱加密中,常見的一種就是RSA加密算法。在使用ssh,務必先弄清楚非對稱加密和rsa的算法流程。詳情參見RSA加密算法。

ssh有兩種級別的安全驗證:賬戶口令驗證、rsa加密驗證。詳細參數,可以在sshd_config配置文件中設置(Ubuntu是/etc/ssh/sshd_config,mac下是/etc/sshd_config)

賬號口令驗證

直接輸入所要登陸的用戶的口令是默認的方式。不需要修改配置文件。

如果直接從客戶端將用戶密碼傳輸到服務器,那麼密碼信息很容易被中間人截獲,從而實現重放攻擊。ssh的實現方式是:

1.客戶端向ssh服務器發出請求,服務器將自己的公鑰返回給客戶端;

2.客戶端用服務器的公鑰加密自己的登錄密碼,再將信息發送給服務器;

3.服務器接收到客戶端傳送的密碼,用自己的私鑰解碼,如果結果正確,則同意登錄,建立起連接。

這種方式還是有漏洞的,中間人可以假扮成服務器,騙取客戶端的密碼。

RSA加密驗證

rsa加密驗證方式,充分利用了非對稱加密體系的優勢,不需要在網絡傳輸密碼,完全杜絕了中間人攻擊的可能。步驟如下:

准備工作

-1.客戶端先使用 ssh-keygen 命令,生成私鑰和公鑰。按照默認配置,私鑰會被保存在~/.ssh/id_rsa中,公鑰則在~/.ssh/id_rsa.pub中。(一般別修改這裡的文件)

0.客戶端通過安全的方式將公鑰發送給服務器。在服務器端,將客戶端發的公鑰寫入到~/.ssh/authorized_keys文件末尾。

建立連接

1.客戶端發出申請。服務器產生session密鑰對,返回通過對應客戶端的公鑰加密後的session公鑰。

2.客戶端用自己的密鑰解密信息,得到session公鑰。

3.之後的數據交互,都通過對方方公鑰加密,對方收到信息後,用其私鑰解密,實現安全加密過程。

Copyright © Linux教程網 All Rights Reserved