基于密钥的SSH认证流程。

01

基于密钥的SSH认证流程

  1. Client生成一对密钥,将公钥存放于Server上,私钥自己留着。

  2. Server收到Client的登录请求,生成一个随机字符串并发送给Client。

  3. Client用私钥对字符串进行加密并发送给Server。

  4. Server用公钥解密得到字符串,并和之前发出去的字符串进行比对。

  5. 根据比对结果判断客户端的合法性。

02

开启SSH密钥认证机制

需ROOT用户权限操作

1、编辑配置文件

vi /etc/ssh/sshd_config

2、开启公钥认证参数

PubkeyAuthentication yes

3、公钥认证文件存放位置

AuthorizedKeysFile      .ssh/authorized_keys

4、控制存放密钥的文件目录权限

chmod 700 ~/.sshchmod 600 ~/.ssh/authorized_keys

5、重启sshd服务,生效修改的配置

systemctl restart sshd

03

公钥、私钥的生成

方法比较多,确保安全推荐使用本地工具生成的方法,比如openssl、ssh-keygen或者ssh客户端工具生成,这里使用ssh-keygen工具来实现:

直接调用ssh-keygen生成基于rsa加密算法的密钥对,默认存储位置(私钥)~/.ssh/id_rsa和(公钥)~/.ssh/id_rsa.pub

[root@manager ~]# ssh-keygen -t rsa

04

密钥和SSH服务结合

第一步:

追加公钥内容到authorized_keys文件中。

[root@manager ~]# cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

第二步:

复制私钥到ssh客户端并导入,用户身份验证的时候使用Public Key。

第三步:

服务器端/var/log/secure验证结果,会看到类似RSA的记录。

Aug 11 11:00:17 localhost sshd[91292]: Accepted publickey for root from 192.168.8.1 port 6281 ssh2: RSA SHA256:v91KVzojzyfWrtBqfUFX2hgPITOZxAsla7L2lMlNl3EAug 11 11:00:17 localhost sshd[91292]: pam_unix(sshd:session): session opened for user root by (uid=0)

05

结束语

SSH服务端版本,操作系统版本的差异可能会导致配置区别,但是总体思路不变,特别是第二段内容配置影响比较大。

密钥生成并配置_基于密钥的SSH认证流程相关推荐

  1. 密钥生成并配置_如何在 CentOS 8 上设置 SSH 密钥

    本文最先发布在: 如何在 CentOS 8 上设置 SSH 密钥​www.itcoder.tech 安全 Shell (SSH) 是一个被设计用来在客户端和服务器之间进行安全连接的加密网络协议. 最流 ...

  2. ubuntu生成密钥和证书_基于浏览器的密钥生成以及与浏览器的密钥/证书存储的交互...

    ubuntu生成密钥和证书 想象以下情况: 您需要从访问您的网站的用户那里获取一个密钥(在非对称情况下为用户的公共密钥 ),并希望浏览器记住私有部分,而不会因冗长的导入过程而困扰用户. 老实说,实际上 ...

  3. aes子密钥生成c语言_一种基于流密码算法的子密钥生成方法与流程

    本发明涉及一种用于分组加解密算法的子密钥的生成方法. 背景技术: 随着信息技术的发展,信息安全性的问题却愈来愈显得突出,保证信息安全的一个重要技术就是密码学.密码学在信息安全技术中扮演着基础的角色,是 ...

  4. SpringBoot 基于 OAuth2 统一身份认证流程详解

    1. 目标 了解OAUTH2统一认证基本概念 了解OAUTH2协议流程 了解OAUTH2各种模式类型 了解Spring Security OAuth设计 2. 分析 传统登陆认证介绍 单点登陆认证介绍 ...

  5. vsc写vue生成基本代码快捷键_基于vue2.X的webpack基本配置,教你手动撸一个webpack4的配置...

    webpack说复杂也不复杂.不复杂,核心概念不外乎是entry, output, loader, plugins.webpack4还新增了optimization选项,用于代码分割和打包优化.现在w ...

  6. 使用密钥登录CentOS系统(基于密钥的认证)

    在Window客户端有多种软件可以登陆ssh,比如putty,xshelll,secureCRT,我就以xshell为例设置使用公钥和私钥验证登陆服务器. 使用Xshell密钥认证机制远程登录Linu ...

  7. python虚拟环境的安装和配置_基于virtualenv的Python虚拟环境的安装配置(Mac环境)...

    一.安装前提 明确自己的开发所需的python版本, Python 2.7.x 或者Python 3.6.x . 安装 Python 2.7.x 或Python 3.6.x 版的virtualenv. ...

  8. java生成iso9660工具_基于数据库的代码自动生成工具,生成JavaBean、生成数据库文档、生成前后端代码等(TableGo v7.0.0版)...

    TableGo_20210212 v7.0.0 正式版发布,此次版本更新如下: 1.新增对DB2数据库的支持 2.新增按字段生成文件,支持把字段.JSON.XML数据转换成任何代码 3.新增大量新的自 ...

  9. Matlab/Simulink自动生成STM32代码_基于模型的开发_环境搭建

    目录 前言 官方简介 Matlab R2018b安装 STM32-MAT/TARGET 安装 STM32CubeMX 安装 STM32CubeIDE, Keil安装 ST-Link驱动安装 微信公众号 ...

最新文章

  1. 互联网架构师必备技术 Docker仓库与Java应用服务动态发布那些事
  2. 企业级 php框架,kfzphp: 致力于为企业和个人创造出大道至简的企业级PHP开发框架...
  3. 获取python工程下面的所需的所有开源依赖包
  4. c#winform使用WebBrowser 大全[超长文转载]
  5. Github Clone to local files
  6. swift语言实战晋级-第9章 游戏实战-跑酷熊猫-7-8 移动平台的算法
  7. 20190829:(leetcode习题)环形链表
  8. 利用深度学习技术自动可靠的叶病检测(附数据+分割分类详细+公共总结)
  9. 银行排队叫号系统项目总结
  10. 空间两条直线的夹角公式(两向量的夹角公式)
  11. android常用单词,Android的英语单词记忆软件系统
  12. 宏碁 Acer AS4738ZG-P622G32Mncc 驱动
  13. Linux的加密和安全
  14. 华为路由模拟器3.0参考实验8----单臂路由无法ping通问题分析
  15. 在Linux和Windows上安装kafka(版本:2.12-2.8.0)
  16. dubbo整体设计整理
  17. 教育行业如何做好数据治理?
  18. 淘宝宝贝描述模板DIV无法使用BACKGROUND属性的终极解决方案
  19. postman项目接口文档和登录步骤原理
  20. C++编码规范与指导zt

热门文章

  1. matlab有没有查找替换,matlab-字符查寻与替换
  2. R语言使用ggplot2包的快速可视化函数qplot绘制散点图(添加平滑曲线与标准差带)实战
  3. R语言使用haven包的read_spss函数读取spss格式数据、使用haven包的read_sas函数读取SAS格式数据、使用haven包的read_dta函数读取Stata格式数据
  4. seaborn可视化多水平分类变量分组箱图boxplot并自定义多个箱体的顺序(Manually Order Boxes in Boxplot with Seaborn)
  5. R语言ggplot2可视化:在ggplot2中将图例(legend)移到图内、自定义图例所处的位置、自定义图例背景、图例所处边框的颜色
  6. UserWarning: Label not :NUMBER: is present in all training examples
  7. c语言不能写入文件,求大神看看为什么不能将数据写入文件
  8. C#程序结构 基本语法
  9. 从网页的控制台登录云服务器ECS中的Ubuntu系统
  10. php图片特效,php_imagick实现图片剪切、旋转、锐化、减色或增加特效的方法