Linux系统SSH通讯过程详解
SegmentFault
共 3178字,需浏览 7分钟
· 2021-01-15
这篇文章来为大家介绍远程连接 Linux 服务器,一般使用 Linux 系统的人都习惯借助第三方远程连接,因为直接在 Linux 系统内操作很不方便,它不能进行上拉页面,这就很让人难受。可以远程连接的软件很多,有 Xshell、putty、CRT 等等,但是我比较喜欢和习惯使用 Xshell。
说到远程连接,那不得不说的一个协议就是 SSH 了,SSH 是 secure shell 的缩写,是一个安全远程管理的服务。它是一个建立在应用层上的安全远程管理协议,算是目前较为可靠的一个传输协议,专门为远程登陆会话和其他网络服务器提供安全性,利用 ssh 协议可以有效防止远程管理过程中的信息泄露问题。这个协议可用于大多数的 UNIX 操作系统中,它能够实现字符界面的远程登录管理,它默认使用 22 端口,采用密文的形式在网络中传输资源,相对于通过明文传输的 Telnet 协议,具有更高的安全性。
SSH 提供了基于账户密码(口令)和密钥对两种登陆验证方式,这两者都是通过密文传输数据的。
账户密码验证过程:
Client → Server:连接请求 Server → Client:发送公钥 Client → Server:用公钥将密码信息加密,发送 Server → Client:用密钥解密并验证消息,信息合法则建立连接通讯账户密码登录认证过程中传输的是用户的账户名和密码,密码具有足够的复杂度才能具有更高的安全性。
ssh root@192.168.88.20
Client → Server:发送连接请求,并将公钥发送; Server → Client:验证本地公钥和发送过来的公钥,如果两钥相同,生成一段 challenge 并将公钥加密,回送 ; Client → Server:用私钥解密,再 challenge 返回给服务器 Server → Client:验证两端 challenge,相同则建立连接
关于用户名密码验证登录
密钥对验证登录
1. 首先客户端生成密钥对文件
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:fl3B1MUmxWWNTdOfad8oOyjGaaU+mas/ayawa4ptiJ8 root@client
The key's randomart image is:
+---[RSA 2048]----+
| .X@|
| oo.X|
| oo+|
| =.|
| S o.o|
| . . ..... o|
|.. o ..*...o |
|oo..o . #.. o |
|.oEo...X=* . |
+----[SHA256]-----+
加密:若加密,则在调用密钥文件时需要先验证密钥的密码,密码正确才能使用密钥文件; 不加密:若不加密,则密钥文件可以直接被调用,整个登陆验证过程无需输入任何密码,即为免密登录;
2. 将公钥文件上传到服务器
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@.71.74.'s password:
Number of key(s) added: 1
Now try logging into the machine, with: "ssh 'root@.71.74.'"
and check to make sure that only the key(s) you wanted were added.
评论
测试新人,如何快速上手一个陌生的系统!
大家好,我是狂师!作为刚入行不久的测试新人,面对一个陌生的系统时,可能会感到有些手足无措。面对一个全新的系统系统,如何快速上手并展开有效的测试工作是一个重要的挑战。本文将探讨测试新人如何通过一系列步骤和策略,快速熟悉并掌握新系统的测试要点,从而提高测试效率和质量。本文旨在为测试新手提供一份指导,帮助
测试开发技术
0
光纤详解:光纤跳线如何分类,多向单模转换?
本文来自“光纤详解:光纤跳线如何分类,多向单模转换?”,光纤跳线作为光网络布线最基础的元件之一,被广泛应用于光纤链路的搭建中。如今,光纤制造商根据应用场景的不同推出众多类型的光纤跳线,如MPO/LC/SC/FC/ST光纤跳线,单工/双工光纤跳线,单模/多模光纤跳线等,它们之间各有特色,且不可替代。本
架构师技术联盟
0
一个神奇的 Linux命令——type
转自:科学随想录在Linux系统中,了解命令的类型、位置和完整路径对于系统管理和开发非常重要。type命令是一个强大而实用的工具,能够帮助我们查看给定命令的类型、位置和完整路径。在本文中,我们将深入探索type命令的用法和功能,并提供详细的代码示例和输出,以帮助读者全面了解该命令。第一部分:type
开源Linux
0
教你基于 Jenkins 搭建一套 CI/CD 系统
原文链接:https://mp.weixin.qq.com/s/KVc4IFky1z7kZn-7bz79DQ一、CI/CD环境介绍本次要实现如下效果,开发人员完成功能开发并提交代码到gitlab仓库,jenkins自动完成拉取代码、编译构建、代码扫描(sonarqube)、打
码农编程进阶笔记
0
GPT的风也吹到了CV,详解自回归视觉模型的先驱! ImageGPT:使用图像序列训练图像 GPT模型
作者丨科技猛兽编辑丨极市平台导读 在 CIFAR-10 上,iGPT 使用 linear probing 实现了 96.3% 的精度,优于有监督的 Wide ResNet,并通过完全微调实现了 99.0% 的精度,匹配顶级监督预训练模型。本文目录1 自回归视觉模型的先驱 ImageGPT:
机器学习初学者
0
Linux系统性能优化:七个实战经验
来源公众号:twt社区IT社区原文链接:https://mp.weixin.qq.com/s/Rey0gSnnj-zoAEwE6J-GjwLinux系统的性能是指操作系统完成任务的有效性、稳定性和响应速度。Linux系统管理员可能经常会遇到系统不稳定、响应速度慢等问题,例如在Linux上搭建了一个w
开源Linux
1
Java项目实战——打造一款股票区间交易盯盘系统
点击上方“Java进阶学习交流”,进行关注后台回复“Java”即可获赠Java学习资料今日鸡汤身无彩凤双飞翼,心有灵犀一点通。一、简介大家好,我是Snowball。今天给大家分享的内容是基于Java编程,实现股票交易相关功能开发,如果读者对股票或金融衍生物交易不太了解,又比较感兴趣的话可自行查询相关
Java进阶学习交流
0
AI智能视觉检测技术在工业级测量领域的创新应用--AMB Tube-Q导管数字化测量系统
技术背景在深度学习算法出来之前,对于视觉算法来说,大致可以分为以下5个步骤:特征感知,图像预处理,特征提取,特征筛选,推理预测与识别。早期的机器学习中,占优势的统计机器学习群体中,对特征是不大关心的。深度学习是机器学习技术的一个方面,由人工神经网络提供支持。深度学习技术的工作原理是教机器通过实例学习
机器视觉
0