ssh服务两句话
ssh服务采用“非对称密钥系统”:主要通过两把不一样的公钥和密钥来进行加密与解密的过程
公钥(Public Key):提供给远程主机进行数据加密
私钥(Private Key):远程主机使用你的公钥加密的数据,在本地端就能够使用私钥来进行解密。
环境: Server:CentOS 6.7(192.168.1.17) Client: CentOS 7.9(192.168.1.14)
基于密码认证:
原理:
1、Server建立公钥:每次启动sshd服务器,Server会主动查找自己的/etc/ssh/ssh_host*文件。因为这些文件就是Server建立起来的公钥和私钥,一般采用rsa加密方式
2、Client端主动连接要求:若客户端要连接ssh服务器
3、Server端会传输768bit公钥文件给客户端:server公钥需要server私钥解密,因此被截取了,如果没有得到server私钥解密,也是无法查看到内容的,所以公钥明文传输
4、Client端记录/比对Server端的公钥,Client端第一次连接,会将server公钥记录在$HOME/.ssh/known_hosts文件中。若存在记录,则Client端会比对差异,同时Client端会根据Server公钥产生256bit的私钥
5、Client端利用Server发送过来的公钥,将验证的密码加密发送给Server,Server利用自己的私钥进行解密,同时验证密码是否正确(下图的code用户验证密码),验证通过就建立了连接,就可以数据传输了。
操作:
Server端:

创建一个用于远程的账户

ssh端口处于listen状态
Client端:

这里的密码为Server端code用户的密码,Server端要进行code用户密码验证(Client端要用Server公钥给输入的密码加密,然后发送给Server,Server在本地验证code密码是否正确,然后是否建立连接)

Client端会在当前用户的家目录下产生一个.ssh目录,.ssh目录下会建立一个known_hosts文件,用于记录Server的公钥。因为默认用的rsa加密方式,可以通过Server端查看/etc/ssh/ssh_host_rsa.pub与Client端$HOME/.ssh/known_hosts比对看是否一样
基于公钥认证的方式:
原理:
ssh服务两句话的更多相关文章
- 神级程序员通过两句话带你完全掌握Python最难知识点——元类!
千万不要被所谓"元类是99%的python程序员不会用到的特性"这类的说辞吓住.因为 每个中国人,都是天生的元类使用者 学懂元类,你只需要知道两句话: 道生一,一生二,二生三,三生 ...
- 两句话掌握python最难知识点——元类
千万不要被所谓“元类是99%的python程序员不会用到的特性”这类的说辞吓住.因为每个中国人,都是天生的元类使用者 学懂元类,你只需要知道两句话: 道生一,一生二,二生三,三生万物 我是谁?我从哪来 ...
- 两句话掌握 Python 最难知识点——元类
千万不要被所谓“元类是99%的python程序员不会用到的特性”这类的说辞吓住.因为每个中国人,都是天生的元类使用者 学懂元类,你只需要知道两句话: 道生一,一生二,二生三,三生万物 我是谁?我从哪来 ...
- Leetcode884.Uncommon Words from Two Sentences两句话中的不常见单词
给定两个句子 A 和 B . (句子是一串由空格分隔的单词.每个单词仅由小写字母组成.) 如果一个单词在其中一个句子中只出现一次,在另一个句子中却没有出现,那么这个单词就是不常见的. 返回所有不常用单 ...
- 简单两句话解释下prototype和__proto__
先上两句代码: var Person = function () {}; var p = new Person(); 把new的过程拆分成以下三步: <1> var p={}; 也就是说, ...
- 两句话帮你彻底记住gdb之eXamining memory
对于刚学习Unix/Linux环境C编程的小朋友们或者写了很多所谓的C代码的老手们(其实很可能是机械程序员或者是伪程序员)来说,要记住gdb的eXaming memory的语法其实是相当不容易的,如果 ...
- 用sql合并列,两句话合为一句
合并bc两列 UPDATE `test` SET `a`=concat(`b`,`c`) 清空a列 UPDATE `test` SET `a` = NULL
- [Swift]LeetCode884. 两句话中的不常见单词 | Uncommon Words from Two Sentences
We are given two sentences A and B. (A sentence is a string of space separated words. Each word co ...
- leetcode-884两句话中的不常见单词
''' 给定两个句子 A 和 B . (句子是一串由空格分隔的单词.每个单词仅由小写字母组成.) 如果一个单词在其中一个句子中只出现一次,在另一个句子中却没有出现,那么这个单词就是不常见的. 返回所有 ...
随机推荐
- MySQL 三万字精华总结
写在之前:不建议那种上来就是各种面试题罗列,然后背书式的去记忆,对技术的提升帮助很小,对正经面试也没什么帮助,有点东西的面试官深挖下就懵逼了. 个人建议把面试题看作是费曼学习法中的回顾.简化的环节 ...
- Go基础结构与类型05---程序运算
package main import ( "fmt" "math" ) func main() { /*加减乘除,求余*/ fmt.Println(" ...
- Django(48)drf请求模块源码分析
前言 APIView中的dispatch是整个请求生命过程的核心方法,包含了请求模块,权限验证,异常模块和响应模块,我们先来介绍请求模块 请求模块:request对象 源码入口 APIView类中di ...
- GPU上稀疏矩阵的基本线性代数
GPU上稀疏矩阵的基本线性代数 cuSPARSE库为稀疏矩阵提供了GPU加速的基本线性代数子例程,这些子例程的执行速度明显快于仅CPU替代方法.提供了可用于构建GPU加速求解器的功能.cuSPARSE ...
- Yolo:实时目标检测实战(下)
Yolo:实时目标检测实战(下) YOLO:Real-Time Object Detection After a few minutes, this script will generate all ...
- Ascend Pytorch算子功能验证
Ascend Pytorch算子功能验证 编写测试用例 以add算子为例,测试脚本文件命名为:add_testcase.py.以下示例仅为一个简单的用例实现,具体算子的实现,需要根据算子定义进行完整的 ...
- 28.qt quick-ListView高仿微信好友列表和聊天列表
1.视图模型介绍 在Qml中.常见的View视图有: ListView: 列表视图,视图中数据来自ListModel.XmlListModel或c++中继承自QAbstractItemModel或Q ...
- RF中在测试用例集上设置标签
1.有时候我们在执行测试用例时只想执行部分测试用例集下面的测试用例,这时可以在相应的测试用例集中设置标签,然后运行时选择标签执行对应的测试用例 语法: *** Settings *** Force T ...
- 【工具解析】瑞士军刀bettercap2.X解析_第一期_编写HTTP代理注入模块_http(s).proxy.script
/文章作者:Kali_MG1937 CNBLOG博客号:ALDYS4 QQ:3496925334/ 前言 bettercap已经从1.6更新至2.0版本 语言也从ruby改为了go 编写注入模块指定的 ...
- [Azure DevOps] 编译时自动修改版本号
1. 需求 在使用 Pipeline 自动化 CI/CD 流程的过程中,我还还需要自动修改程序集的版本号.这个功能 EdiWang 和LeoLaw 都写文章讲解过做法.不过我的项目基本都是 .Net ...