SSH(Secure Shell)是一種用于安全遠程訪問和安全文件傳輸的協議。它提供了加密的通信通道,使得用戶可以在不安全的網絡上安全地遠程登錄到遠程主機,并在遠程主機上執行命令、訪問文件以及傳輸文件,本篇主要講解命令執行功能。SSH協議使用TCP端口號22
作為默認端口號;在網絡上建立起連接后,用戶可以通過 SSH客戶端與遠程主機進行交互。
SSH(Secure Shell)和Telnet是兩種用于遠程登錄的協議,它們之間有幾個重要的區別:
1.SSH提供了加密的通信通道,可以有效地防止數據在傳輸過程中被竊聽或篡改,因此提供了更高的安全性。相比之下,Telnet在傳輸過程中不對數據進行加密,因此容易受到中間人攻擊和竊聽,安全性較低。 ? 2.SSH提供了多種強大的身份認證機制,包括密碼認證、公鑰認證、基于證書的認證等。這些認證機制提供了更高的安全性,并且可以減少密碼被盜的風險。Telnet通常僅支持基于密碼的認證,安全性較低,容易受到密碼破解或中間人攻擊的影響。 ? 3.SSH默認使用TCP端口號22作為通信端口,Telnet默認使用TCP端口號23。
Telnet相關配置
需求:實現R2能夠telnet
管理R1
這個時候R2為客戶端,R1為被管理設備即服務端
思科:
R1服務端配置:
1.檢查設備是否支持SSH協議
R1#show ip ssh
有對應回顯則表示設備支持SSH協議;接著設置enable密碼,與telnet一樣,如果沒有設置enable密碼的,客戶端登陸到該設備就只能在用戶模式中進行操作。
R1>enable ?
R1#configure terminal
R1(config)#enable secret wolven //enable密碼設置為wolven
接著,設置域名以及相關的數據加密算法,設置密鑰長度;域名的設置與密鑰生成相關,且在設置密鑰長度是要注意,當密鑰長度小于768bit時無法使用SSH版本2;(密鑰越長,則通信的效率會低)
配置命令:
R1(config)#ip domain-name wolven.com //設置域名
R1(config)#crypto key generate rsa //生成rsa密鑰
How many bits in the modulus [512]: 2048 ? //選擇密鑰長度
% Generating 2048 bit RSA keys, keys will be non-exportable...
[OK] (elapsed time was 1 seconds)
接著需要創建登錄賬戶(用戶名+密碼),并在配置vty線路啟用 vty 線路上的 SSH 協議。
R1(config)#username wolven secret wolven123 //創建wolven賬戶,密碼為wolven123
R1(config)#line vty 0 4
R1(config-line)#transport input ssh
R1(config-line)#login local
至此服務端配置完成。
客戶端嘗試登錄
R2>ssh -l wolven 192.168.8.10
Password:
R1>
使用ssh命令,跟上-l
參數指定登錄賬戶,輸入密碼后正常登錄。
補充:
R1(config)#ip ssh time-out 120 ? ? //修改超時時間
R1(config)#ip ssh authentication-retries 1 ? ? //修改重認證次數。
R1(config)#ip ssh version 2 ? ? ? ? //修改版本
華為:
R1服務端設置:
首先打開SSH服務,并生成rsa密鑰;
<R1>system-view
[R1]stelnet server enable
[R1]rsa local-key-pair create //創建密鑰
The key name will be: Host
% RSA keys defined for Host already exist.
Confirm to replace them? (y/n)[n]:y ? ? //是否重新生成密鑰并覆蓋原來的密鑰
The range of public key size is (512 ~ 2048).
NOTES: If the key modulus is greater than 512,It will take a few minutes.
Input the bits in the modulus[default = 512]:512 //選擇密鑰長度
Generating keys...
..............++++++++++++
.++++++++++++
......................................++++++++
.....++++++++
接著創建本地賬戶用于客戶端進行ssh登錄:
[R1]aaa ? //進入3a視圖
[R1-aaa]local-user wolven password cipher wolven123
Info: Add a new user.
[R1-aaa]local-user wolven service-type ssh
[R1-aaa]local-user wolven privilege level 15 //設置賬戶權限
?
[R1-aaa]quit
[R1]ssh user wolven authentication-type password ? //設置wolven用戶在使用ssh登錄時使用密碼進行身份驗證
最后設置vty界面,開啟ssh登錄,并設置驗證方式為aaa。
[R1]user-interface vty 0 4
[R1-ui-vty0-4]protocol inbound ssh
[R1-ui-vty0-4]authentication-mode aaa
至此服務端配置完成。
R2客戶端嘗試連接:
[R2]ssh client first-time enable
注:第一次登錄時,客戶端需要開啟首次認證功能,本次將不會驗證SSH服務器端的RSA公鑰;登錄后系統將自動分配并保存RSA公鑰,在下次登錄時驗證。
使用stelnet
進行連接:
[R2]stelnet 192.168.8.10
華三:
R1服務端配置:
首先開啟SSH服務,并生成rsa密鑰;
<R1>system-view
[R1]ssh server enable
[R1]public-key local create rsa
接著創建本地賬戶用于客戶端使用ssh進行登錄;并配置該用戶進行SSH登錄時使用密碼進行身份驗證。
[R1]local-user wolven
[R1-luser-manage-wolven]password simple Hello123456
[R1-luser-manage-wolven]service-type ssh
[R1-luser-manage-wolven]quit
[R1]ssh user wolven service-type all authentication-type password //使用密碼進行身份驗證
最后進入vty視圖,配置使用SSH登錄,且登錄時使用aaa認證進行身份驗證:
[R1]user-interface vty 0 4
[R1-line-vty0-4]authentication-mode scheme //3a認證
[R1-line-vty0-4]protocol inbound ssh
至此服務端配置完成。
R2客戶端進行連接嘗試
<R2>ssh2 192.168.8.10
輸入賬戶密碼后成功登錄。