ssh原理及使用場景


用過linux系統的朋友,基本肯定會用過ssh。因為大部分的linux登錄都是通過ssh將進行登錄,除非你用的是類似windows的桌面版。

 

一、什么是SSH

SSH 為 Secure Shell 的縮寫,由 IETF 的網絡小組(Network Working Group)所制定;SSH 為建立在應用層基礎上的安全協議。SSH 是較可靠,專為遠程登錄會話和其他網絡服務提供安全性的協議。利用 SSH 協議可以有效防止遠程管理過程中的信息泄露問題。SSH最初是UNIX系統上的一個程序,后來又迅速擴展到其他操作平台。SSH在正確使用時可彌補網絡中的漏洞。SSH客戶端適用於多種平台。幾乎所有UNIX平台—包括HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其他平台,都可運行SSH

二、ssh的基本原理

 傳輸層協議 [SSH-TRANS]

提供了服務器認證,保密性及完整性。此外它有時還提供壓縮功能。 SSH-TRANS 通常運行在TCP/IP連接上,也可能用於其它可靠數據流上。 SSH-TRANS 提供了強力的加密技術、密碼主機認證及完整性保護。該協議中的認證基於主機,並且該協議不執行用戶認證。更高層的用戶認證協議可以設計為在此協議之上。

用戶認證協議 [SSH-USERAUTH]

用於向服務器提供客戶端用戶鑒別功能。它運行在傳輸層協議 SSH-TRANS 上面。當SSH-USERAUTH 開始后,它從低層協議那里接收會話標識符(從第一次密鑰交換中的交換哈希H )。會話標識符唯一標識此會話並且適用於標記以證明私鑰的所有權。 SSH-USERAUTH 也需要知道低層協議是否提供保密性保護。

連接協議 [SSH-CONNECT]

將多個加密隧道分成邏輯通道。它運行在用戶認證協議上。它提供了交互式登錄話路、遠程命令執行、轉發 TCP/IP 連接和轉發 X11 連接。

三、ssh的使用場景

1、遠程登錄 

      1 ssh -p 22 user@host 

      參數: -p:指定端口號。user:登錄的用戶名。host:登錄的主機

      如果是使用默認的端口22,則可以省略 -p參數: ssh user@host 。

    通常使用默認端口以外的其他端口,可以有效減少被攻擊的機會。

    此外,如果本地正在使用的用戶名與遠程登錄的用戶名一致,登錄用戶名也是可以省略的,        即: ssh host 

2、SSH端口轉發

     即將TCP 端口的網絡數據,轉發到指定的主機某個端口上,在轉發的同時會對數據進行相應的加密及解密。其中轉發,包含本地轉發、遠程轉發、動態轉發;

轉發參數如下:

-C:壓縮數據-f :后台認證用戶/密碼,通常和-N連用,不用登錄到遠程主機;

-N :不執行腳本或命令,通常與-f連用;

-g :在-L/-R/-D參數中,允許遠程主機連接到建立的轉發的端口,如果不加這個參數,只允許本地主機建立連接;

-L : 本地端口:目標IP:目標端口;

-D : 動態端口轉發-R : 遠程端口轉發;

-T :不分配 TTY 只做代理用;

-q :安靜模式,不輸出 錯誤/警告 信息;

1)本地端口轉發:

把本地端口的請求,轉發的目標端口;參數格式:ssh -L 本地網卡地址:本地端口:目標端口 用戶@目標地址

2)遠程端口轉發

把遠程端口的請求,轉發的目標(本地)端口;參數格式:ssh -R 遠程地址:遠程端口:目標地址:目標端口

3)動態轉發

對於本地端口轉發和遠程端口轉發,都存在兩個一一對應的端口,分別位於SSH的客戶端和服務端,而動態端口轉發則只是綁定了一個本地端口,而目標地址:目標端口則是不固定的。目標地址:目標端口是由發起的請求決定的,比如,請求地址為192.168.1.100:3000,則通過SSH轉發的請求地址也是192.168.1.100:3000。具體參數如下:

 # 在本地主機A1登陸遠程雲主機B1,並進行動態端口轉發

sh -D localhost:2000 root@103.59.22.17

 

技術之路學無止境!

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM