Linux安全運維進階:SSH 無縫切換遠程加密
一、了解SSH
1.隨便說說
SSH 為 Secure Shell 的縮寫,由 IETF 的網(wǎng)絡小組(Network Working Group)所制定;SSH 為建立在應用層基礎上的安全協(xié)議。SSH 是目前較可靠,專為遠程登錄會話和其他網(wǎng)絡服務提供安全性的協(xié)議。利用 SSH 協(xié)議可以有效防止遠程管理過程中的信息泄露問題。SSH最初是UNIX系統(tǒng)上的一個程序,后來又迅速擴展到其他操作平臺。SSH在正確使用時可彌補網(wǎng)絡中的漏洞。SSH客戶端適用于多種平臺。幾乎所有UNIX平臺—包括HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其他平臺,都可運行SSH。
2.過關
從客戶端來看,SSH提供兩種級別的安全驗證。
第一種級別(基于口令的安全驗證)
只要你知道自己帳號和口令,就可以登錄到遠程主機。所有傳輸?shù)臄?shù)據(jù)都會被加密,但是不能保證你正在連接的服務器就是你想連接的服務器。可能會有別的服務器在冒充真正的服務器,也就是受到“中間人”這種方式的×××。
第二種級別(基于密匙的安全驗證)
需要依靠密匙,也就是你必須為自己創(chuàng)建一對密匙,并把公用密匙放在需要訪問的服務器上。如果你要連接到SSH服務器上,客戶端軟件就會向服務器發(fā)出請求,請求用你的密匙進行安全驗證。服務器收到請求之后,先在該服務器上你的主目錄下尋找你的公用密匙,然后把它和你發(fā)送過來的公用密匙進行比較。如果兩個密匙一致,服務器就用公用密匙加密“質詢”(challenge)并把它發(fā)送給客戶端軟件??蛻舳塑浖盏?ldquo;質詢”之后就可以用你的私人密匙解密再把它發(fā)送給服務器。
用這種方式,你必須知道自己密匙的口令。但是,與第一種級別相比,第二種級別不需要在網(wǎng)絡上傳送口令。
第二種級別不僅加密所有傳送的數(shù)據(jù),而且“中間人”這種×××方式也是不可能的(因為他沒有你的私人密匙)。但是整個登錄的過程可能需要10秒
3.層次
SSH 主要由三部分組成:
傳輸層協(xié)議 [SSH-TRANS]
提供了服務器認證,保密性及完整性。此外它有時還提供壓縮功能。 SSH-TRANS 通常運行在TCP/IP連接上,也可能用于其它可靠數(shù)據(jù)流上。 SSH-TRANS 提供了強力的加密技術、密碼主機認證及完整性保護。該協(xié)議中的認證基于主機,并且該協(xié)議不執(zhí)行用戶認證。更高層的用戶認證協(xié)議可以設計為在此協(xié)議之上。
用戶認證協(xié)議 [SSH-USERAUTH]
用于向服務器提供客戶端用戶鑒別功能。它運行在傳輸層協(xié)議 SSH-TRANS 上面。當SSH-USERAUTH 開始后,它從低層協(xié)議那里接收會話標識符(從第一次密鑰交換中的交換哈希H )。會話標識符唯一標識此會話并且適用于標記以證明私鑰的所有權。 SSH-USERAUTH 也需要知道低層協(xié)議是否提供保密性保護。
連接協(xié)議 [SSH-CONNECT]
將多個加密隧道分成邏輯通道。它運行在用戶認證協(xié)議上。它提供了交互式登錄話路、遠程命令執(zhí)行、轉發(fā) TCP/IP 連接和轉發(fā) X11 連接。
二、事前準備
1.簡單說一句
ssh命令是openssh套件中的客戶端連接工具,可以給予ssh加密協(xié)議實現(xiàn)安全的遠程登錄服務器。
2.常用語法:
ssh(選項)(參數(shù))
- -1:強制使用ssh協(xié)議版本1;
- -2:強制使用ssh協(xié)議版本2;
- -4:強制使用IPv4地址;
- -6:強制使用IPv6地址;
- -A:開啟認證代理連接轉發(fā)功能;
- -a:關閉認證代理連接轉發(fā)功能;
- -b:使用本機指定地址作為對應連接的源ip地址;
- -C:請求壓縮所有數(shù)據(jù);
- -F:指定ssh指令的配置文件;
- -f:后臺執(zhí)行ssh指令;
- -g:允許遠程主機連接主機的轉發(fā)端口;
- -i:指定身份文件;
- -l:指定連接遠程服務器登錄用戶名;
- -N:不執(zhí)行遠程指令;
- -o:指定配置選項;
- -p:指定遠程服務器上的端口;
- -q:靜默模式;
- -X:開啟X11轉發(fā)功能;
- -x:關閉X11轉發(fā)功能;
- -y:開啟信任X11轉發(fā)功能。
3.官方語法
- usage: ssh [-1246AaCfGgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec]
- [-D [bind_address:]port] [-E log_file] [-e escape_char]
- [-F configfile] [-I pkcs11] [-i identity_file]
- [-J [user@]host[:port]] [-L address] [-l login_name] [-m mac_spec]
- [-O ctl_cmd] [-o option] [-p port] [-Q query_option] [-R address]
- [-S ctl_path] [-W host:port] [-w local_tun[:remote_tun]]
- [user@]hostname [command]
三、一頓操作(快速連接)
1.下載安裝XSHELL
Google一下
2.新建連接會話
3.設置用戶身份驗證(默認選擇Password)
4.連接服務器
四、無縫連接
1.確認兩臺服務器信息
2.設置hosts配置域名映射
3.生成密鑰
4.拷貝密鑰到另一臺主機
5.查看服務器的密鑰
6.無密碼加密連接
五、回顧
1.解析.ssh目錄下的奧秘
- [root@web1 .ssh]# tree -l.
- ├── authorized_keys #web1主機上的認證文件:記錄登錄密鑰├── id_rsa #web1主機的私鑰├── id_rsa.pub #web1主機的公鑰└── known_hosts #記錄登錄到web1的服務key:校驗作用0 directories, 4 files
- [root@web1 .ssh]#
2.操作解密
步驟如下:web1服務器生成密鑰--》復制web1的公鑰到web2--》輸入web2服務器密碼--》web1公鑰加入到web2的認證文件--》web1無密碼連接web2--》生成web1的校驗密鑰到known_hosts--》web2服務器校驗known_hosts與 authorized_keys文件是否匹配--》匹配就允許登錄,反之拒絕--》web2無密碼連接web1,同理。