如何理解Linux系统SSH协议和原理

SSH免密登录原理及步骤 SSH免密登录原理及步骤 文章目录SSH免密登录原理及步骤1.什么是SSH?2.SSH的两种认证方式3.SSH背景4.SSH(Secure Shell)最基本的用法:5.SSH密钥登录原理6.密钥登录的操作步骤 1.什么是SSH? 简单说,SSH是一种网络协议,用于计算机之间的加密登录。 • 如果一个用户从本地计算机,使用SSH协议登录另一台远程计算机,就可以认为,这种登录是安全的,即使被中途... 阅读详情

一、基础概念

1、概念:ssh,全称叫Secure Shell,由IETF的网络工作小组(Network Working Group)所制定;SSH为一项创建在应用层和传输层基础上的安全协议。

2、传统网络服务程序缺点:rsh/ftp/telnet 在网络上用明文传送数据、用户帐号和用户口令,很容易受到中间人(man-in-the-middle)攻击方式的攻击。

3、SSH安全协议的优点:专为远程登录会话和其他网络服务提供安全性的协议;是一个允许两台电脑之间通过安全的连接进行数据交换的网络协议(公钥加密技术)。

二、如何使用,应用场所

ssh协议常应用于客户端与服务器网络通信、数据交换的场景。

1、服务器:默认情况下,ssh服务器,会在 TCP 端口 22 进行监听;

OpenSSH (OpenBSD Secure Shell) 是一套使用ssh协议、通过计算机网络、提供加密通讯会话的计算机程序。

 

三、工作原理

SSH分为密码认证和公钥认证两种认证方式,下面是各自的流程。
1、密码认证
客户端请求SSH服务器,服务器发送其公钥给客户端。
客户端使用服务器返回的公钥,加密自己的通讯密钥(客户端产生的密钥,不是用户的公钥或私钥),而后发给服务器。
服务器使用自己的私钥解密通讯密钥,至此,双方建立起了安全的通讯信道。
客户端将用户名和密码加密后发送给服务器进行验证
2、公钥认证
客户生成密钥对后,将公钥上传到服务器上(一般存放在~/.ssh/authorized_keys文件中)
登陆时,客户端发送包含用户名、公共密钥和公共密钥算法的 认证请求给服务器端。
服务器对认证请求进行检查。

四、总结

由于密码认证比较简单,属于非对称加密算法的一种校验方法,实质是为了确保数据的保密性。这里我们主要讲解公匙认证。

公钥认证,是使用一对加密字符串,一个称为公钥(public key), 任何人都可以看到其内容,用于加密;另一个称为密钥(private key),只有拥有者才能看到,用于解密。 通过公钥加密过的密文使用密钥可以轻松解密,但根据公钥来猜测密钥却十分困难。

1、在使用公钥认证之前,先检查一下服务器的ssh配置文件/etc/ssh/sshd_config

RSAAuthentication yes        # 启用 RSA 认证,默认为yes
PubkeyAuthentication yes     # 启用公钥认证,默认为yes

如果配置没有问题,那么你就可以进行下一步了。

2、下面我们举个例子,比如有两台机器,客户机A与服务器B,想用ssh公钥认证方式从A机器用client用户登录到B机器的server用户,方法如下:

1)、在客户机A上生成公钥与密钥
[client@test ~]$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/client/.ssh/id_rsa): #此处直接按回车即可
Created directory '/home/client/.ssh'.
Enter passphrase (empty for no passphrase): #此处直接按回车即可
Enter same passphrase again: #此处直接按回车即可
Your identification has been saved in /home/client/.ssh/id_rsa.
Your public key has been saved in /home/client/.ssh/id_rsa.pub.
The key fingerprint is:
f5:30:ba:10:ee:7a:c6:cf:d8:ec:3f:4c:b3:f1:09:6d client@linuxsong.org

这样就生成了client用户在这台机器的公钥(/home/client/.ssh/id_rsa.pub )和私钥(/home/client/.ssh/id_rsa).


2).将上一步生成的公钥文件拷贝到服务器B上。然后将文件内容追加到server用户目录的.ssh/authorized_keys中:

[server@server]$ cat id_rsa.pub >> .ssh/authorized_keys

这样,client用户从客户机上登录到服务器的server用户,就不用再输入密码了。

注意:
.ssh 目录的权限必须是0700
.ssh/authorized_keys 文件权限必须是0600
否则公钥认证不会生效。

回顾SSH 和SSL 协议+系统自动化安装 : PXE服务 安全和加密实现原理*************************************************************************************************** ssl 、openssl、ssh、openssh 是什么SSL 协议 国际标准的加密及身份认证通信协议。SSL 通信协议使用通信双方的客户证书即CA 证书,在通信双方之间建立起受双 阅读详情

相关推荐

SSH协议分析:理解“Send Packet Type 30”及SSH登录流程引言_ssh_msg_disconnect

在这个过程中,“Send Packet: Type 30”通常表示客户端已准备好进行密钥交换,并且正在向服务器发送一个请求,以初始化或重新初始化加密参数。在SSH协议中,数据包类型被编码为单字节的整数,用于标识数据包的用途。2、在工作中,运维人员经常需要跟运营人员打交道,请问运营人员是做什么工作的?6、Squid、Varinsh和Nginx有什么区别,工作中你怎么选择?5、LVS、Nginx、HAproxy有什么区别?7、Tomcat和Resin有什么区别,工作中你怎么选择?

2401_83946261的博客 616

5分钟理解SSH的工作原理

熟悉Linux的人肯定都知道SSH。SSH是一种用于安全访问远程服务器的网络协议。它将客户端与服务端之间的消息通过加密保护起来,这样就无法被窃取或篡改了。那么它安全性是如何实现的呢? 为了理解SSH,先要介绍两个重要概念:对称加密和非对称加密。 对称加密: 在对称加密中,客户端和服务端使用同一个密钥对数据进行加密和解密。这种方法的好处是加密强度高,很难破解。缺点也很明显,即密钥本身容...

Huadong_eddy的博客 936

64、Linux 术语详解:从基础到高级概念

本文详细介绍了Linux操作系统中的关键术语,涵盖基础概念、网络与安全、桌面环境、文件系统、用户权限、系统管理、编程脚本等多个方面。通过解析如init.d、inode、sudo、iptables等常用术语,并结合图表说明运行级别和服务机制,帮助读者全面理解Linux的核心组件与工作机制,适合初学者和进阶用户学习参考。

i3j4k5的博客 51

Linux--远程访问及控制(详解OpenSSH的原理及配置)

Linux--远程访问及控制(OpenSSH的原理及配置)一:OpenSSH服务器1.1:SSH(Secure Shell)协议1.2: OpenSSH1.3: 服务监听选项1.4: 用户登录控制二:登录验证方式2.1:密码验证2.1.1:修改服务端ssh服务的配置文件,对客服端远程登录进行限制2.1.2:客户端登录权限的验证2.1.3:客户端最大失败连接次数的验证2.2 密钥对验证 一:OpenSSH服务器 1.1:SSH(Secure Shell)协议 是一种安全通道协议 对通信数据进行了加密处理,用

king的博客 2047

别再混淆了!5分钟搞懂机器人导纳控制与阻抗控制的本质区别(附Simulink对比仿真)

本文深入解析机器人柔顺控制中的导纳控制与阻抗控制的本质区别,通过信号流方向、架构对比和应用场景三个关键视角进行详细阐述。文章还提供Simulink对比仿真案例,帮助读者快速理解两种控制策略的差异及其适用场景,特别适合机器人控制领域的研究者和工程师参考。

weixin_42543046的博客 604

使用freesurfer和3Dslicer进行脑区分割和电极定点(详细版)

1、安装好matlab和freesurfer2、在目标位置创建文件夹3、开放权限4、将需要计算的nii文件放入文件夹。

zQIANYUN的博客 5628

超详细的图解SSH原理(真的超详细哦~~~~~~~~~)

本文以图文方式对SSH原理进行解析(主要指远程登录,没有涉及端口转发等功能)。同时分析了非对称加密的特性,以及在实践过程中如何对加密操作进行改进。known_hosts中存储的内容是什么?known_hosts中存储是已认证的远程主机host key,每个SSH Server都有一个secret, unique ID, called a host key。host key何时加入known_hosts的?。。3.为什么需要known_hosts?

wang_qiu_hao的博客 1万+

基础矩阵、本质矩阵、单应矩阵

基础矩阵是一个 3×3 的秩为2的矩阵,用于描述两个不同视图(或称为图像)之间对应点的几何约束。更具体地说,如果你有两幅图像,分别从两个不同的相机或者相机位置拍摄,那么基础矩阵可以用于找到一个图像中的点在另一个图像中的对应点。本质矩阵也是一个 3×3 的秩为2的矩阵,与基础矩阵非常类似。当两个视图(图像)之间的场景是一个平面或者两个视图之间仅有旋转和平移时,可以使用单应矩阵来关联这两个视图。这三个矩阵都是在计算机视觉中广泛应用的基础工具,但它们适用于不同类型的视图和场景。给定两个图像中的一对对应点。

Gloamirror的博客 1328

Linux网络服务-SSH远程登录协议

SSH(Secure Shell)是一种安全通道协议,主要用来实现字符界面的远程登录、远程 复制等功能。SSH 协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令,SSH 为建立在应用层和传输层基础上的安全协议。对数据进行压缩,加快传输速度。SSH客户端SSH服务端。

搬着砖,敲着代码的博客 910

从Chimera到ChimeraX:科研绘图升级指南,让你的论文配图更专业

本文详细介绍了从UCSF Chimera升级到ChimeraX的科研绘图指南,帮助研究者提升论文配图质量。ChimeraX在渲染引擎、大分子处理能力和动画功能上具有显著优势,特别适合生命科学和结构生物学领域。文章涵盖材质设置、专业配色、工作流程和期刊适配等核心技巧,助力产出出版级分子可视化图像。

weixin_33670786的博客 930

Docker 环境 Playwright MCP 部署全流程指南

Docker部署Playwright MCP全流程指南 本文详细介绍了使用Docker容器化部署Playwright MCP的完整流程,涵盖镜像拉取、容器启动、配置优化和问题排查。主要内容包括: 核心部署步骤:通过官方镜像快速搭建环境,支持自定义端口和数据持久化 关键配置要点:详解网络设置、持久化目录挂载和环境变量配置 服务验证方法:通过日志检查和服务连通性测试确保部署成功 客户端集成:提供VS Code等IDE的配置示例 常见问题解决:针对浏览器启动超时、跨域限制等问题给出解决方案 实战案例:演示自动化爬

勤奋的码农 1473

Linux网络服务----SSH

SSH(Secure Shell)是一种安全通道协议,主要用来实现字符界面的远程登录、远程 复制等功能;SSH 协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令;SSH 为建立在应用层和传输层基础上的安全协议。对数据进行压缩,加快传输速度。和ssh一样的通信协议还有telnet(端口号23),和ssh不一样的是ssh是密文传输数据,而telnet则是铭文传输,所以相对而言ssh的安全性更高一点。SSH优点对通信数据进行加密处理,包括登录名称和登陆的密码,所以安全性很高。

我的博客 7747

Android 系统状态栏中实现高斯模糊背景

至此,我们已经完成了在 Android 系统的 SystemUI 中实现高斯模糊背景的过程。通过以上的布局和代码修改,我们可以在状态栏中看到具有高斯模糊效果的背景。同时,为了在不同版本的 Android 系统上适配高斯模糊效果,可能需要进行一些额外的代码调整和兼容性处理。希望本文能够帮助你理解如何在 Android 系统的 SystemUI 中实现高斯模糊背景,并通过提供的源代码进行相应的开发和调试。首先,我们需要在 SystemUI 的布局文件中添加一个用于展示高斯模糊背景的视图。属性来开启模糊效果。

CyberSparkZ的博客 870

linux ssh远程登录_详解linux协议--SSH远程登录原理

概述平时工作基本都是用xshell直接连上服务器,但是这中间是通过什么协议,又是什么原理可能很多朋友就不太清楚了,下面针对下ssh方面做一个介绍和原理解析。ssh基本概念SSH(22端口)是Secure Shell Protocol的简写,由IETF网络工作小组(Network Working Group)制定;在进行数据传输之前,SSH先对联机数据包通过加密技术进行加密处理,加密后在进行数据传输...

weixin_39746241的博客 344

电商行业分析爬虫:抓取行业数据,进行行业分析

电商行业数据分析对于市场研究、竞争分析和商业决策至关重要。通过爬取电商平台的数据,我们可以深入了解市场动态、消费者行为和商品销售情况。本文将介绍如何构建一个电商行业分析爬虫,抓取商品信息、销售数据和用户评价等,并进行数据分析。

u014481728的博客 1628

stable-diffusion-webui的逐步部署教程

本文主要介绍了stable-diffusion-webui的逐步部署教程,希望能对使用Stable Diffusion的同学们有所帮助。 文章目录 1. 前言 2. 逐步部署教程 2.1 创建Python环境 2.2 安装依赖库 2.3 运行代码

weixin_43178406的博客 6万+

3、Linux下ssh的原理及免密钥登录

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34041003的博客 102

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Linux基础知识第六讲,远程管理ssh操作

目录 Linux基础知识第六讲,远程管理ssh操作 一丶什么是SSH 1.什么是SSH 2.了解域名跟端口 二丶SSH命令以及远程连接linux进行维护 1.ssh命令格式 2.scp远程终端拷贝文件 3....

weixin_30919429的博客 97

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Linux远程访问及控制

远程访问及控制一.OpenSSH服务器1.1SSH(Secure Shell)协议1.2OpenSSH 一.OpenSSH服务器 1.1SSH(Secure Shell)协议 ●是一种安全通道协议,tcp22端口 ●对通信数据进行了加密处理,用于远程管理 1.2OpenSSH ●服务名称: sshd ●服务端主程序:/usr/sbin/sshd ●服务端配置文件:/etc/ssh/sshd_config ●客户端配置文件:/etc/ssh/ssh_config system/sshd-keygen.serv

weixin_48190863的博客 379

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Linux 基础入门(二)

本文出自 “逐梦小涛” 博客,请务必保留此出处http://1992tao.blog.51cto.com/11606804/18954511.远程连接★ssh协议:secure shell~]# ss -tnl 查看系统是否监听在tcp协议的22号接口;~]# ip addr list 或者 ifconfig 查看ip地址确保防火墙处于关闭状态:~] # iptables ...

weixin_34194087的博客 90

SSH远程连接原理(怎样在linux系统和windows系统互传文件)(有多处引用别人的博客,侵权删)

1. SSH远程连接的原理SSH远程连接中,SSH2协议分为3个协议:传输层协议,认证协议,连接协议,而SSH1中由单个协议提供密钥交换,身份认证,加密的功能。传输层协议主要提供密钥交换与服务端认证的功能,认证协议是提供客户端认证功能,客户端认证主要有基于口令认证和密钥认证,连接协议主要是提供远程执行命令功能。而在此我们主要讨论SSH远程连接的原理,也就是客户端认证的两种方式:工作流程如下:(此处...

qq_42522064的博客 3279

linux ssh协议服务理解及应用

OSI模型【设备控制: 物理接口层 数据链路层数据网络层 协议软件控制:TCP/IP|UDP数据传输层 应用表示会话层:ip协议基础之上的软件协议http,ftp等】ssh-keygen -E SHA256 -lf /etc/ssh/ssh_host_ecdsa_key.pub是本地公钥原数据 加密后是本机指纹信息。确定会话连接之前==[ssh-keyscan ip]可以提取指加密指纹信息。会话安全,且离不开算法加密解密的密钥文件验证交换。指纹==信息是否一样。

weixin_47242801的博客 430

利用Bitvise等软件通过SSH登录linux系统的心得

利用Bitvise等软件通过SSH登录linux系统的心得 SSH简介(摘自百度百科) ssh (安全外壳协议) SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄...

PrincePengY的博客 4098

Linux终端与SSH

SSH是一个较为广泛的概念他可以指SecureShell(SSH)协议也可以指ssh客户端/服务端SSH客户端/服务端是通过SSH协议进行通信的程序。为了方便区分,这里把SSH(大写)作为SSH协议,ssh(小写)作为客户端或服务端。那我们是怎么通过ssh客户端与Linux服务器进行交互的呢?这个就需要提到伪终端通过伪终端实现输入输出。通过网络和SSH协议完成数据从服务端到客户端的传输。简单来说就是[2]通过manpts可以查阅linux对伪终端的介绍。.....................

q1009020096的博客 1562

深入理解Linux中的SCP命令:使用与原理

SCP(Secure Copy Protocol)是基于SSH(Secure Shell)协议的文件传输工具。它利用SSH的加密机制,确保文件在传输过程中的安全性。scp [选项] [源文件] [目标文件]源文件:要传输的文件或目录,可以是本地路径或远程路径。目标文件:文件传输的目标位置,可以是本地路径或远程路径。选项:用于指定SCP命令的行为,如端口号、递归复制等。SCP是Linux系统中一个简单而强大的文件传输工具,特别适合在安全性要求较高的环境中使用。

weixin_39033358的博客 1727

Linux 远程连接解析:SSH 协议理论与应用

SSH 不仅是远程登录工具,更是一套完整的远程管理生态。从基础的ssh命令登录,到sftpscp的文件传输,再到安全的密钥认证,掌握这些技能能让你轻松应对各种远程操作场景。记住:安全永远是第一位的,优先使用密钥认证,并合理配置 SSH 服务限制,让远程连接既高效又安全。

Sadsvit的博客 1567
上一篇: Android硬编解码MediaCodec使用笔记
下一篇: 我的 HarmonyOS入门笔记
艾特小王子
博客等级 码龄10年 6粉丝 17原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值