SSH基于用户名密码的认证原理

哈喽,大家好呀!这里是码农后端。今天来聊一聊什么是SSH以及SSH基于用户名密码的认证原理。

一、SSH概述

SSH(Secure Shell,安全的shell),是一种用于安全访问远程服务器的协议,是Linux下远程管理的工具,相比Telnet安全。其采用CS(Client/Server)架构,默认端口号为22,TCP协议。

注:SSH其实用于商业,而OpenSSH即为开源的,在Linux中默认安装。

1、加密算法

在学习SSH服务之前先来了解一下两种加密算法。

1.1 对称加密算法(DES)

1)发送方使用密钥将明文数据加密成密文发送出去。

2)接收方收到密文后,使用同一个密钥将密文解密成明文进行读取。

59cb4628e511cea265ff646e6c2cdf44.jpeg

1.2 非对称加密算法(RSA)

1)发送方使用接收方发送过来的公钥明文数据加密成密文,然后发送出去。

2)接收方收到密文后,使用自己本地留存的私钥将密文解密成明文进行读取。

注:公钥和私钥是一对用于非对称加密和解密的密钥。公钥可以公开分享,用于加密数据或验证签名私钥必须保密,用于解密数据或创建签名

009ac54e0a04cbd7636f3789e6ae841e.jpeg

1.3 对称加密与非对称加密比较

对称加密:

1)使用同一个密钥进行加密和解密,密钥容易泄露。

2)加密速度快,效率高,数据传输速度快,安全性较低。

非对称加密:

1)使用不同的密钥(公钥和私钥)进行加密和解密。

2)加密速度远远慢于对称加密,数据传输速度慢,安全性较高。

2、SSH基于用户名密码的认证原理

基本语法:

ssh [选项] 远程服务器的用户名@远程服务器的IP地址
# 选项说明:
-p:指定ssh服务的端口号,默认为22

认证原理:

1)SSH客户端向SSH服务端发起一个登录请求。

2)SSH服务端将自己的公钥发送给SSH客户端。

3)SSH客户端使用服务端发过来的公钥将自己的密码加密并发送给SSH服务端。

4)SSH服务端收到SSH客户端发过来的加密密码后使用本地留存的私钥进行解密。

5)SSH服务端将解密出来的密码和/etc/shadow文件里的用户密码对比认证。

6)SSH服务端认证成功,则返回登录成功结果,并发送一个随机会话口令给客户端,该口令用于后面两台主机进行数据传输的一个临时加密会话口令。

f5090b7705910e050890784329b0934f.png

案例背景:

为了最大程度的保护公司内网服务器的安全,公司内部有一台服务器做跳板机(JumpServer)。运维人员在维护过程中先要统一登录到这台服务器,然后再登录到目标设备进行维护和操作。由于开发人员有时候需要通过跳板机登录到线上生产环境查看一些业务日志,所以现在需要运维人员针对不同的人员和需求对账号密码进行统一管理,并且遵循权限最小化原则。

3cac4b4317c8cb82f84ba9882f2a1176.jpeg

环境准备:准备两台机器,跳板机(JumpServer)和线上生产服务器(RealServer)。

83b00035ad75533cffbc59f3ed377f26.jpeg

第一步:把现有的CentOS7操作系统恢复快照(刚装完系统的Linux服务器) => 母机(模板机)

第二步:对CentOS7操作系统进行克隆,生成JumpServer与RealServer

注:克隆备份要求克隆时操作系统必须处于关闭状态。

1)查看各自IP地址:

9b413f65fa578f3f3b191ee4107a46e4.png

2)整理如下表:

编号IP地址主机名称角色信息
1192.168.91.130jumpserver.itweb.cnJumpServer
2192.168.91.128realserver.itweb.cnRealServer

3)修改主机名称:

JumpServer:

hostnamectl set-hostname jumpserver.itweb.cn

RealServer:

hostnamectl set-hostname realserver.itweb.cn

f91606ca38b8d8e265a8aa9d39652519.png

4)模拟通过JumpServer跳板机远程连接RealServer线上生产服务器

JumpServer:

# ssh远程登录操作
ssh root@192.168.91.128
# 显示结果(注:如果是第一次访问,则提示无法确认主机的真实性)
# The authenticity of host '192.168.91.128 (192.168.91.128)' can't be established.

0a664a19609acde9b25756696cbe6f55.png

注:当客户端输入yes确认对方的公钥指纹后, server端的公钥就会被存放到客户机的用户家目录(~/ .ssh/known _hosts文件)中,下次再访问就直接通过密码登录,不需要再确认公钥。

好了,以上就是今天这篇文章的全部内容了。如果你想及时看到我的文章,只需做这几个动作:点星标、点在看(包括赞)、评论、分享,我就会经常出现在您的常读列表,后面更新都会提醒。感谢大家的关注和支持,祝大家生活美满,学业有成,事业蒸蒸日上!

往期精彩文章推荐(点击下方蓝字即可阅读!)

往期推荐

一文带你快速了解VMware的三种网络模式

什么是yum源?如何对其进行配置?

Linux有哪些常用的高级扩展命令?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码农后端

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值