一、SSH介紹:linux
SSH 是Secure Shell Protocol 的簡寫,由IETF網絡小組(Network Working Group)制定;在進行數據傳輸以前,SSH先對聯機數據包經過加密技術進行加密處理,加密後再進行數據傳輸,確保了傳遞的數據安全。面試
SSH是專門爲遠程登陸會話和其餘網絡服務提供的安全性協議。利用SHH協議能夠有效的防止遠程管理過程當中的信息泄露問題,在當前的生產環境中,絕大多數企業廣泛採用SSH協議服務來代替傳統的不安全的遠程聯機服務軟件,如telnet(23端口,非加密的)等。算法
在默認狀況下,SSH服務提供兩個服務功能,一個是提供相似telnet遠程聯機服務器的服務,即上面提到的SSH服務,另外一個是相似FTP服務的sftp-server,藉助SSH協議來傳輸數據,提供更安全的SFTP服務。shell
SFTP:加密的FTP安全
(1)ssh 是安全的加密協議,用於遠程鏈接服務器。服務器
(2)默認端口是22,安全協議版本 ssh2。網絡
(3)服務端主要包含兩個服務功能:ssh 遠程鏈接,SFTP 服務。ssh
(4)ssh客戶端包含 ssh 鏈接命令,以及遠程拷貝 scp 命令等。優化
二、SSH 結構:加密
SSH 服務由服務端軟件 OpenSSH和客戶端組成。常見的有ssh(linux)、CRT、Putty、xshell等。SSH 服務默認使用 22 端口提供服務,它有兩個不兼容的 SSH 協議版本,分別是 1.x 和2.x
OpenSSL 負責加密。
SSH 服務端是一個守護進程(demon),它在後臺運行並相應來自客戶端的鏈接請求。SSH 服務端的進程名爲 sshd,負責實時監聽遠程 SSH 客戶端的鏈接請求,並進行處理,通常包括公共密鑰認證、密鑰交換、對稱密鑰加密和非安全鏈接等。這個 SSH 服務就是咱們前面基礎系統優化中保留開機自動的服務之一。
SSH 客戶端包含 SSH程序以及像scp(遠程拷貝)、slogin(遠程登陸)、sftp(安全FTP文件傳輸)等應用程序。
三、SSH 的工做機制
本地的 ssh 客戶端先發送一個鏈接請求到遠程的 ssh 服務端,服務端檢查鏈接的客戶端發送的數據包和IP地址,若是確認合法,就會發送祕鑰給SSH的客戶端,此時,客戶端本地再將祕鑰發回給客戶端,自此鏈接創建。SSH 1.x和SSH 2.x在鏈接協議上有一些安全方面的差別。
四、SSH 加密技術:
簡單的說,SSH 加密技術就是將人類能夠看得懂的數據,經過一些特殊的程序算法,把這些數據變成雜亂的無心義的信息,而後經過網絡進行傳輸,而當到了目的地後,在經過對應的解密算法,把傳來的加密的數據信息解密成加密前的可讀的正常數據。
每一臺SSH 服務器主機均可以使用 RSA 加密方式來產生一個 1024-bit 的RSA Key,這個 RSA 的加密方式就是用來產生公鑰與私鑰的算法之一。
1.x 版本只支持 RSA。
當SSH 服務啓動時,就會產生一個 768-bit 的臨時公鑰(sshd_config 配置文件中 ServerKeyBits 768)存放在 Server 中。
五、面試題:給定一個端口,肯定是哪一個服務。
lsof -i :端口號 #例:lsof -i :22 查看22端口屬於哪一個服務
六、兩個ssh文件。
sshd_config 服務端
ssh_config 客戶端
七、安裝 SSH 服務:
Centos6裏默認安裝 SSH 的服務端, 可是須要手動安裝 SSH的客戶端。
服務端:192.168.3.137
客戶端:192.168.3.138
yum install -y openssh-clients #安裝ssh服務的客戶端
ssh -p22 root@192.168.3.138 #經過192.168.3.137鏈接對端,指定端口22(默認端口,可更改),
中間須要輸入對端密碼。
八、小結:
(1)切換到別的機器 ssh -p22 user@ip
(2)到其餘機器執行命令(不會切到機器上) ssh -p22 user@ip 命令
(3)第一次鏈接的時候,本地會產生一個祕鑰 ~/.ssh/known_hosts
九、ssh 客戶端附帶的遠程拷貝 scp 命令:
(1)推:本地將文件推到對端。
scp -P22 /本地文件路徑 user@ip:/對端存放路徑 #scp 指定端口用 P scp -p22 /data/abc.txt root@192.168.3.138:/file
經過對端查看:
(2)拉:對端將本地文件拉到對端下。
scp -P22 user@ip:/對端文件位置 /本地存放位置 #推、拉只是將源目調換位置 scp -P22 root@192.168.3.138:/file/a.org /data
十、SSH 服務附帶的sftp 功能服務:
基於ssh ,加密傳輸。
sftp -oPort=22 user@對端ip #-oPort 指定端口號 sftp -oPort=22 root@192.168.3.138
使用 put 進行文件傳輸,在對端查看:
下載對端的文件,使用 get
上傳--傳到對方的家目錄
下載--下載到當前目錄下 --
sshd 守護進程,開機要自啓動