当前位置: 首页 > news >正文

Linux网络协议之SSH

目录

一.SSH

1.1定义

1.2ssh的优点

1.3ssh服务端和客户端

1.4sshd

二.SSH服务原理

 2.1公钥传输原理

2.2ssh加密通讯原理  

2.2.1对称加密

2.2.2非对称加密

三.SSH登录方式

四.SSH免密码登录


一.SSH

1.1定义

SSH(Secure Shell) 是一种加密的网络协议,用于在不安全的网络(如互联网)中安全地远程登录和管理计算机系统,或传输文件。它通过加密技术保护通信内容,防止窃听、篡改和中间人攻击。

1.2ssh的优点

1.加密通信

所有传输的数据(包括密码、命令、文件)均被加密,确保隐私和完整性

2.身份验证

  1. 密码认证:通过用户名和密码登录。

  2. 密钥认证:使用公钥-私钥对(更安全,推荐用于服务器管理)。

3.远程终端访问 

4.端口转发

SSH支持 端口转发功能,可以安全地传输其他协议和应用程序。

1.3ssh服务端和客户端

ssh客户端:用于连接远程 SSH 服务器,执行命令或传输文件。

常见有:Putty、Xshell、CRT

ssh服务端:用于提供 SSH 连接服务,接受客户端远程登录。

常见有:OpenSSH

OpenSSH 是实现 SSH 协议的开源软件项目,Centos7系统默认安装,并将ssh服务添加为开机自启。

sshconfigsshd__config都是ssh服务器的配置文件,前者是针对客户端的配置文件而后者是针对服务端的配置文件

1.4sshd

sshd(Secure Shell Daemon)是 SSH 协议的服务端程序,负责监听客户端的连接请求,并提供安全的远程登录、命令执行和文件传输服务。它是 OpenSSH 的核心组件,默认运行在服务器的 22/TCP 端口


服务名称:sshd##主程序##
服务端主程序:/usr/sbin/sshd  ##配置文件##
服务端配置文件:/etc/ssh/sshd_config 
#设置与服务端相关的应用可通过服务器端配置文件实现
客户端配置文件:/etc/ssh/ssh_config
#设置与客户端相关的应用可通过客户端配置文件实现

二.SSH服务原理

 2.1公钥传输原理

  1. 客户端发起链接请求

  2. 服务端返回自己的公钥,以及一个会话ID(这一步客户端得到服务端公钥)

  3. 客户端生成密钥对

  4. 客户端用自己的公钥异或会话ID,计算出一个值Res,并用服务端的公钥加密

  5. 客户端发送加密值到服务端,服务端用私钥解密,得到Res

  6. 服务端用解密后的值Res异或会话ID,计算出客户端的公钥(这一步服务端得到客户端公钥)

  7. 最终:双方各自持有三个秘钥,分别为自己的一对公、私钥,以及对方的公钥,之后的所有通讯都会被加密

2.2ssh加密通讯原理  

 ssh加密分为对称加密非对称加密

2.2.1对称加密

定义:采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密, 由于其速度快,对称性加密通常在消息发送方需要加密大量数据时使用。

特点:1、加密方和解密方使用同一个密钥; 2、加密解密的速度比较快,适合数据比较长时的使用; 3、密钥传输的过程不安全,且容易被破解,密钥管理也比较麻烦;

优缺点优点是算法公开、计算量小、加密速度快、加密效率高。

               缺点是在数据传送前,发送方和接收方必须商定好秘钥,然后使双方都能保存好秘钥。其次如果一方的秘钥被泄露,那么加密信息也就不安全了。另外,每对用户每次使用对称加密算法时,都需要使用其他人不知道的独一秘钥,这会使得收、发双方所拥有的钥匙数量巨大,密钥管理成为双方的负担。

2.2.2非对称加密

定义:非对称加密算法需要两个密钥:公开密钥(publickey:简称公钥)和私有密钥(privatekey:简称私钥)。公钥与私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。

优缺点 :优点是非对称加密技术安全性更好。

                缺点是加密速度更慢。

三.SSH登录方式

方法一:

ssh [远程主机用户名]@[远程服务器主机名或IP地址] -p port#用户为root时可不写主机名
#不加-p 选项 默认使用22端口
-p  指定登录端口(当服务端的端口非默认时,需要使用-p 指定端口进行登录)                                      

方法二

ssh -l [远程主机用户名] [远程服务器主机名或IP 地址] -p port-l :-l 选项,指定登录名称。
-p: -p 选项,指定登录端口(当服务端的端口非默认时,需要使用-p 指定端口进行登录)

方式三.跳板登录

跳板登录:是在不暴露目标主机的情况下,通过一台中间服务器(跳板机/Bastion Host)间接访问目标服务器#方式一#
ssh -t IP1  ssh -t IP2.... ssh -t 目标IP
# IP1和IP2为跳板机的IP地址,先跳转到IP1,再跳转到IP2
#两次跳转成功后,才能远程连接到目标设备#举例#
ssh -t 192.168.91.101  ssh -t 192.168.91.102  ssh -t 192.168.91.103
#跳转两次,从当前设备远程连接IP地址为192.168.91.103的主机或者服务器#方式二
ssh -J IP1,IP2...  目标IP
#通过多个跳板机(Bastion Hosts)级联登录最终目标服务器#举例
ssh -J 192.168.52.102,192.168.52.103 192.168.52.104
#192.168.52.102和192.168.52.103为跳板机登录192.168.52.104

 方法四.远程登录

ssh 目标设备的IP地址 命令
#远程控制目标主机使用命令 并将命令执行结果返回本机#主机B的IP地址为192.168.52.100[root@localhost ~] ssh 192.168.52.100 ls #查看主机B家目录下有哪些目录或文件 

四.SSH免密码登录

客户端IP:192.168.52.100

服务端IP:192.168.52.101

ssh-keygen   #生成密钥文件 -t #指定加密方式 
#不加此选项,默认使用rsa方式
...
Enter file in which to save the key(/root/.ssh/id_rsa): 直接回车
#选择密钥文件存放的位置                 (默认路径)Enter passphrase (empty for no passphrase): 
#是否对密钥文件进行加密
#远程登录一般不输入密码 直接回车
Enter same passphrase again: cd /root/.sshls #最后会生成两个文件,其中.pub为密钥文件

​
​
ssh-copy-id -i 公钥文件  [用户名]@IP地址 
#将密钥文件传过去
#以root用户登录时 可省略ssh-copy-id -i id_rsa.pub 192.168.52.101
#复制公钥文件​​

(以上操作皆在客户端完成) 

相关文章:

  • 【AI提示词】业务开发经理
  • 660 中值定理
  • 黑神话悟空像素版 中文单机版
  • GPIO _OUTPUT-NORMAL 模式
  • Ubuntu和Debian 操作系统的同与异
  • Vue 高级技巧深度解析
  • 【星闪模组开发板WS8204SLEBLEModule】星闪数据收发测试
  • 信息系统项目管理师-工具名词解释(下)
  • STM32 TDS+温度补偿
  • MySQL——存储
  • Redis 分布式锁+秒杀异步优化
  • android11 DevicePolicyManager浅析
  • Rocky8.10安装openhalo1.0
  • 算法——通俗讲解升幂定理
  • 基于深度学习的狗鼻纹身份识别
  • 定制开发还是源码搭建?如何快速上线同城外卖跑腿APP?
  • 算法堆排序记录
  • 1022 Digital Library
  • 【ROS2】行为树 BehaviorTree(五):详细学习端口和黑板
  • 项目集管理汇报报告 (范本)
  • 9部门发文促进家政服务消费扩容升级
  • 2月美国三大债主均增持美国国债,中国增持235亿美元
  • 第18届全球航空货运论坛在迪拜开幕,聚焦可持续与数字化转型
  • 很多姑娘超级爱的这款饮品,竟然也开始背刺了?
  • 国家统计局:今年增量政策和存量政策一起发力,推动了经济实现良好开局
  • 深一度|2005年首败来得恰到好处,巴萨三冠王雄心依旧