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

day037-openssh服务与http协议

文章目录

  • 0. **日记---2025年6月18日 星期三 晴**
  • 1. openssh服务
    • 1.1 核心组件
    • 1.2 服务端配置文件及参数
  • 2. telnet服务、openssh服务
    • 2.1 telnet服务测试
      • 2.1.1 启动telnet服务
      • 2.1.2 telnet客户端连接
      • 2.1.3 抓包
  • 3. 密钥认证
    • 3.1 生成密钥
    • 3.2 分发公钥
    • 3.3 案例-批量配置密钥认证
      • 3.3.1 sshpass软件
      • 3.3. 2 自动化脚本
    • 3.4 补充
  • 4. web服务基础-http协议
    • 4.1 基础知识及命令
    • 4.2 请求报文-request
      • 4.2.1 请求方法
      • 4.2.2 协议版本
    • 4.3 响应报文-response
  • 5. 踩坑记录
    • 1. curl -v baidu.com/www.baidu.com 为啥不一样?
  • 6. 思维导图

0. 日记—2025年6月18日 星期三 晴

🌅 清晨
天刚亮,我就收到了你的消息。
你说:“嗓子痛。”

我的心一下子揪了起来,手指飞快地打字:

“买药没有?是衣服穿太薄了吗?这几天别吃辛辣食物,零食也别吃了,多喝点热水。早晚天气冷,注意加衣服。早上可以喝杯热牛奶…换季容易感冒,是我没叮嘱好你,对不起。”

😶 沉默片刻
你回复:

“不是,是昨晚给别人口了。”

我愣了两秒,随即松了一口气——
“原来不是感冒啊…吓我一跳。”

📝 备注

  • 天气:晴朗微凉
  • 心情:从担忧到尴尬再到释然
  • 事件:虚惊一场的“病况”

🤪终于可以放心的写笔记了🤪

1. openssh服务

OpenSSH(Open Secure Shell)是一套用于 安全远程登录文件传输 的开源工具,基于 SSH(Secure Shell)协议,用于加密客户端与服务器之间的通信,防止数据被窃听或篡改。它广泛用于 Linux/Unix 系统,是远程管理服务器的标准工具。

1.1 核心组件

组件功能
sshdSSH服务端守护进程,监听连接请求
sshSSH客户端工具,用于连接远程服务器
scp基于SSH的远程安全文件传输工具
sftp基于SSH的交互式文件传输(类似于FTP)
ssh-keygen生成SSH密钥对(公钥+私钥)
ssh-copy-id将公钥上传到服务器(分发公钥),实现免密登录(密钥登录)

1.2 服务端配置文件及参数

  • 服务端配置文件路径:/etc/ssh/sshd_config
  • 核心参数:
openssh服务端核心配置参数说明
Port指定端口号
PermitRootLogin是否准许root远程登录
PasswordAuthentication是否开启密码登录功能
PubkeyAuthentication是否开启密钥登录
UseDNS控制 SSH 服务端是否对客户端 IP进行反向 DNS 解析,用于验证主机名一致性。
GSSAPIAuthentication是否允许GSSAPI认证(支持 Kerberos 等安全协议的通用认证框架)

2. telnet服务、openssh服务

服务特点应用场景
telnet服务远程连接,端口:23;数据不加密更新openssh时,作为备用的远程连接方案
openssh服务远程连接,默认端口:22;数据加密应用最广泛的远程连接服务

2.1 telnet服务测试

2.1.1 启动telnet服务

  • 系统默认安装了telnet服务,直接启动即可
[root@oldboy99-Kylin ~]# rpm -qa |grep telnet
telnet-0.17-77.ky10.x86_64
[root@oldboy99-Kylin ~]# systemctl start telnet.socket

2.1.2 telnet客户端连接

  • 指定23端口,不写也行;默认telnet会连接23端口

在这里插入图片描述

2.1.3 抓包

  • 过滤语句:tcp.port==23
  • 选择vmnet8网卡抓包
  • 再用telnet登录,再退出;观察抓包内容

在这里插入图片描述

在这里插入图片描述

  • 接下来传输的数据是用户名

在这里插入图片描述

  • 数据是按字符传递的,点击多个数据包可以发现用户名是root
  • 接下来查看密码

在这里插入图片描述

在这里插入图片描述

  • 依次查看data数据包即可

在这里插入图片描述

3. 密钥认证

  • openssh远程登录的方法:
    • 密码登录
    • 密钥认证(免密登录)

在这里插入图片描述

3.1 生成密钥

  • 命令:ssh-keygen
    • -f:指定密钥的生成路径
    • -P ‘……’:指定私钥的密码
    • -t rsa:type,指定密钥加密算法,一般是rsa

在这里插入图片描述

3.2 分发公钥

  • 命令:sh-copy-id [选项] 用户名@主机地址
    • -i 公钥路径:指定要复制的公钥文件(默认使用 ~/.ssh/id_rsa.pub);可省略
    • -p 端口:指定远程服务器的SSH端口,默认是22;可省略
    • -f:强制覆盖原公钥
    • -o StrictHostKeyChecking=no:SSH 不会验证主机密钥,直接自动接受新主机的密钥并连接

在这里插入图片描述

  • 测试一下:
# 无密码登录web01
[root@m01 ~]# ssh web01Authorized users only. All activities may be monitored and reported.Authorized users only. All activities may be monitored and reported.
Activate the web console with: systemctl enable --now cockpit.socketLast login: Thu Jun 19 15:15:18 2025 from 172.16.1.61
# 登录成功!
[root@web01 ~]# 注销
Connection to web01 closed.
# 使用SSH远程执行命令
[root@m01 ~]# ssh web01 hostname -IAuthorized users only. All activities may be monitored and reported.
10.0.0.7 172.16.1.7 
[root@m01 ~]# 
  • 太过完美🙂
  • 服务端web01会在authorized_keys文件内添加客户端的公钥

3.3 案例-批量配置密钥认证

3.3.1 sshpass软件

  • 下载安装:yum install -y sshpass
  • 无交互远程登录:
[root@m01 ~/.ssh]# sshpass -p 'SKX2554.' ssh web01 -o StrictHostKeyChecking=no
Warning: Permanently added 'web01,172.16.1.7' (ECDSA) to the list of known hosts.Authorized users only. All activities may be monitored and reported.Authorized users only. All activities may be monitored and reported.
Activate the web console with: systemctl enable --now cockpit.socketLast login: Thu Jun 19 15:52:06 2025 from 172.16.1.61
[root@web01 ~]# 

3.3. 2 自动化脚本

[root@m01 /server/scripts]# cat key_authentication.sh 
#!/bin/bash
##############################################################
# File Name:key_authentication.sh
# Version:V1.0
# Author:SunKexu
# Organization:www.oldboyedu.com
# Desc:批量密钥认证
##############################################################
export LANG=en_US.UTF-8# vars
#ips="5 6 7 8 9 10 31 41 "
ips="7 8 9"
# 密码可能有特殊符号,用单引号
pass='SKX2554.'
user="root"
# command
# 生成密钥
create_key(){key_file="$HOME/.ssh/id_rsa"[ ! -f ${key_file} ] && {ssh-keygen -t rsa -f ${key_file} -P ''}return $?
}
# 分发密钥
distribute_key(){for ip in ${ips}dosshpass -p $pass ssh-copy-id -o StrictHostKeyChecking=no ${user}@10.0.0.$ipdonereturn $?
}
# 检查
check(){for ip in $ipsdossh -o StrictHostKeyChecking=no ${user}@10.0.0.$ip hostname -Idonereturn $?
}
# main 启动函数
main(){create_keydistribute_keycheck
}
main

3.4 补充

  • 密钥分发命令 ssh-copy-id是一个脚本,本质是ssh命令
[root@m01 ~]# file `which ssh-copy-id `
/usr/bin/ssh-copy-id: POSIX shell script, ASCII text executable

在这里插入图片描述

  • 与密钥有关的目录和文件权限:
[root@m01 ~]# ll -d .ssh/ .ssh/id_rsa
drwx------ 2 root root   57  619 16:30 .ssh/
-rw------- 1 root root 2590  619 14:58 .ssh/id_rsa

4. web服务基础-http协议

HTTP(HyperText Transfer Protocol,超文本传输协议)是互联网上应用最广泛的协议之一,用于在客户端(如浏览器)和服务器之间传输数据(如网页、API 请求等)。

4.1 基础知识及命令

  • 请求:request
  • 响应:response
  • 查看访问网站流程信息:
    • wget --spider --debug www.baidu.com
    • curl -v www.baidu.com
  • 辅助工具:浏览器开发者工具(DevTools)
    • 右键网页-检查

在这里插入图片描述

4.2 请求报文-request

在这里插入图片描述

4.2.1 请求方法

请求方法说明
GET下载,从服务器请求数据
POST上传,向服务器发送数据(如提交表单、上传文件)
HEAD获取资源的元信息(如响应头),不返回实际数据

4.2.2 协议版本

http协议版本http1.0http1.1http2.0http3.0
特点短连接长连接长连接长连接
底层协议tcptcptcpudp
场景常用领域常用领域直播、视频(还未完全普及)
性能提升性能,并发访问处理
安全http、https只能使用htps

4.3 响应报文-response

在这里插入图片描述

在这里插入图片描述

5. 踩坑记录

1. curl -v baidu.com/www.baidu.com 为啥不一样?

  • curl查看二级域名时,虽然响应中没有302标志符,但是通过页面代码实现重定向

在这里插入图片描述

6. 思维导图

https://kdocs.cn/join/gpuxq6r?f=101

http://www.lryc.cn/news/572353.html

相关文章:

  • 2025实时数据同步:多平台商品信息接口的高效更新技术解析
  • jquery 赋值时不触发change事件解决——仙盟创梦IDE
  • Python——PyQt5初体验
  • LVS 负载均衡群集
  • LeetCode | 二分法题型详解+图解
  • bos_token; eos_token; pad_token是什么
  • QSqlDatabase: QSQLITE driver not loaded
  • infinisynapse 使用清华源有问题的暂时解决方法:换回阿里云源并安装配置PPA
  • LoRA 浅析
  • Python Beautiful Soup 4【HTML/XML解析库】 简介
  • StableDiffusion实战-手机壁纸制作 第一篇:从零基础到生成艺术品的第一步!
  • Hexo 个人博客配置记录(GitHub Pages + Butterfly 主题 + Waline 评论 + 自动部署)
  • Kernel K-means:让K-means在非线性空间“大显身手”
  • 职坐标IT培训:嵌入式AI物联网开源项目精选
  • 基于大模型的急性结石性胆囊炎全流程预测与诊疗方案研究
  • 【图像处理入门】11. 深度学习初探:从CNN到GAN的视觉智能之旅
  • 跟着AI学习C# Day22
  • 实时输出subprocess.Popen运行程序的日志
  • 永磁同步电机无速度算法--基于正切函数锁相环的滑模观测器
  • 【鸿蒙HarmonyOS Next App实战开发】​​​​ArkUI纯色图生成器
  • VACM 详解:SNMPv3 的访问控制核心
  • 回溯----8.N皇后
  • C++ std::set的用法
  • 根据图片理解maven
  • FocalAD论文阅读
  • SpringBoot 应用开发核心分层架构与实战详解
  • SpringBoot电脑商城项目--修改默认收货地址
  • 计算机网络:(四)物理层的基本概念,数据通信的基础知识,物理层下面的传输媒体
  • Mac电脑-Office 2024 长期支持版(Excel、Word、PPT)
  • 【数据破茧成蝶】企业数据标准:AI时代的智能罗盘与增长基石