SSH分為兩部分:客戶端部分和服務(wù)端部分。 服務(wù)端是一個守護(hù)進(jìn)程(demon),他在后臺運(yùn)行并響應(yīng)來自客戶端的連接請求。服務(wù)端一般是sshd進(jìn)程,提供了對遠(yuǎn)程連接的處理,一般包括公共密鑰認(rèn)證、密鑰交換、對稱密鑰加密和非安全連接。 客戶端包含ssh程序以及像scp(遠(yuǎn)程拷貝)、slogin(遠(yuǎn)程登陸)、sftp(安全文件傳輸)等其他的應(yīng)用程序。 他們的工作機(jī)制大致是本地的客戶端發(fā)送一個連接請求到遠(yuǎn)程的服務(wù)端,服務(wù)端檢查申請的包和IP地址再發(fā)送密鑰給SSH的客戶端,本地再將密鑰發(fā)回給服務(wù)端,自此連接建立。剛才所講的只是SSH連接的大致過程,SSH 1.x和SSH 2.x在連接協(xié)議上還有著一些差異。 SSH被設(shè)計成為工作于自己的基礎(chǔ)之上而不利用超級服務(wù)器(inetd),雖然可以通過inetd上的tcpd來運(yùn)行SSH進(jìn)程,但是這完全沒有必要。啟動SSH服務(wù)器后,sshd運(yùn)行起來并在默認(rèn)的22端口進(jìn)行監(jiān)聽(你可以用 # ps -waux | grep sshd 來查看sshd是否已經(jīng)被正確的運(yùn)行了)如果不是通過inetd啟動的SSH,那么SSH就將一直等待連接請求。當(dāng)請求到來的時候SSH守護(hù)進(jìn)程會產(chǎn)生一個子進(jìn)程,該子進(jìn)程進(jìn)行這次的連接處理。 但是因為受版權(quán)和加密算法的限制,現(xiàn)在很多人都轉(zhuǎn)而使用OpenSSH。OpenSSH是SSH的替代軟件,而且是免費(fèi)的, |
|