网络基础-SSH协议(思科、华为、华三)

2024-05-13 22:21

本文主要是介绍网络基础-SSH协议(思科、华为、华三),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

输入账户密码后成功登录。

这篇关于网络基础-SSH协议(思科、华为、华三)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/986992

相关文章

Linux 网络编程 --- 应用层

一、自定义协议和序列化反序列化 代码: 序列化反序列化实现网络版本计算器 二、HTTP协议 1、谈两个简单的预备知识 https://www.baidu.com/ --- 域名 --- 域名解析 --- IP地址 http的端口号为80端口,https的端口号为443 url为统一资源定位符。CSDNhttps://mp.csdn.net/mp_blog/creation/editor

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

ASIO网络调试助手之一:简介

多年前,写过几篇《Boost.Asio C++网络编程》的学习文章,一直没机会实践。最近项目中用到了Asio,于是抽空写了个网络调试助手。 开发环境: Win10 Qt5.12.6 + Asio(standalone) + spdlog 支持协议: UDP + TCP Client + TCP Server 独立的Asio(http://www.think-async.com)只包含了头文件,不依

poj 3181 网络流,建图。

题意: 农夫约翰为他的牛准备了F种食物和D种饮料。 每头牛都有各自喜欢的食物和饮料,而每种食物和饮料都只能分配给一头牛。 问最多能有多少头牛可以同时得到喜欢的食物和饮料。 解析: 由于要同时得到喜欢的食物和饮料,所以网络流建图的时候要把牛拆点了。 如下建图: s -> 食物 -> 牛1 -> 牛2 -> 饮料 -> t 所以分配一下点: s  =  0, 牛1= 1~

poj 3068 有流量限制的最小费用网络流

题意: m条有向边连接了n个仓库,每条边都有一定费用。 将两种危险品从0运到n-1,除了起点和终点外,危险品不能放在一起,也不能走相同的路径。 求最小的费用是多少。 解析: 抽象出一个源点s一个汇点t,源点与0相连,费用为0,容量为2。 汇点与n - 1相连,费用为0,容量为2。 每条边之间也相连,费用为每条边的费用,容量为1。 建图完毕之后,求一条流量为2的最小费用流就行了

poj 2112 网络流+二分

题意: k台挤奶机,c头牛,每台挤奶机可以挤m头牛。 现在给出每只牛到挤奶机的距离矩阵,求最小化牛的最大路程。 解析: 最大值最小化,最小值最大化,用二分来做。 先求出两点之间的最短距离。 然后二分匹配牛到挤奶机的最大路程,匹配中的判断是在这个最大路程下,是否牛的数量达到c只。 如何求牛的数量呢,用网络流来做。 从源点到牛引一条容量为1的边,然后挤奶机到汇点引一条容量为m的边

【Linux 从基础到进阶】Ansible自动化运维工具使用

Ansible自动化运维工具使用 Ansible 是一款开源的自动化运维工具,采用无代理架构(agentless),基于 SSH 连接进行管理,具有简单易用、灵活强大、可扩展性高等特点。它广泛用于服务器管理、应用部署、配置管理等任务。本文将介绍 Ansible 的安装、基本使用方法及一些实际运维场景中的应用,旨在帮助运维人员快速上手并熟练运用 Ansible。 1. Ansible的核心概念

AI基础 L9 Local Search II 局部搜索

Local Beam search 对于当前的所有k个状态,生成它们的所有可能后继状态。 检查生成的后继状态中是否有任何状态是解决方案。 如果所有后继状态都不是解决方案,则从所有后继状态中选择k个最佳状态。 当达到预设的迭代次数或满足某个终止条件时,算法停止。 — Choose k successors randomly, biased towards good ones — Close

【Linux】应用层http协议

一、HTTP协议 1.1 简要介绍一下HTTP        我们在网络的应用层中可以自己定义协议,但是,已经有大佬定义了一些现成的,非常好用的应用层协议,供我们直接使用,HTTP(超文本传输协议)就是其中之一。        在互联网世界中,HTTP(超文本传输协议)是一个至关重要的协议,他定义了客户端(如浏览器)与服务器之间如何进行通信,以交换或者传输超文本(比如HTML文档)。

git ssh key相关

step1、进入.ssh文件夹   (windows下 下载git客户端)   cd ~/.ssh(windows mkdir ~/.ssh) step2、配置name和email git config --global user.name "你的名称"git config --global user.email "你的邮箱" step3、生成key ssh-keygen