RHCE命令练习(二)

本文是RHCE命令练习的第二部分,涵盖了实现SSH免密登录、限制SSH登录用户、GET与POST请求的区别、常见HTTP状态码解释以及HTTP请求报文和响应报文的结构。此外,还详细讨论了HTTP如何利用会话跟踪技术保持连接状态。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

RHCE命令练习(二)

一.实现ssh免密登录

1、启动ssh服务
[root@localhost ~]# systemctl start sshd
[root@localhost ~]# systemctl status sshd
● sshd.service - OpenSSH server daemon
   Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset>
   Active: active (running) since Thu 2022-07-28 15:22:28 CST; 35s ago
     Docs: man:sshd(8)
           man:sshd_config(5)
 Main PID: 1188 (sshd)
    Tasks: 1 (limit: 11088)
   Memory: 4.6M
   CGroup: /system.slice/sshd.service
           └─1188 /usr/sbin/sshd -D -oCiphers=aes256-gcm@openssh.com,chacha20-p>

2、生成一对私钥和公钥
[root@localhost ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Created directory '/root/.ssh'.
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:/gUnxEXtSQY+WJUMqM8XmC8+wBvIkQfzeWYsGaGJy6I root@localhost.localdomain
The key's randomart image is:
+---[RSA 3072]----+
|        .. o**.. |
|     .oo...=  *  |
|    . o= *+oo+ . |
|   . .o B.B ..o  |
|  . o. =SBo...   |
| . .  o.+ ++o    |
|E       .= o.    |
|        ..o.     |
|          ..     |
+----[SHA256]-----+

3、将公钥写入root下的authorized_keys文件中
[root@localhost ~]# ssh-copy-id root@192.168.106.129
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
The authenticity of host '192.168.106.129 (192.168.106.129)' can't be established.
ECDSA key fingerprint is SHA256:+EJ5oyw9iIfQF06zX1SBOdrhG5mQ317N5DL7ZXfTmeM.
Are you sure you want to continue connecting (yes/no/[fingerprint])? y
Please type 'yes', 'no' or the fingerprint: y^H
Please type 'yes', 'no' or the fingerprint: y
Please type 'yes', 'no' or the fingerprint: yes
/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@192.168.106.129's password: 

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh 'root@192.168.106.129'"
and check to make sure that only the key(s) you wanted were added.

4、在client登录server主机(无需密码)
[root@localhost ~]# ssh 192.168.106.129
Activate the web console with: systemctl enable --now cockpit.socket

This system is not registered to Red Hat Insights. See https://cloud.redhat.com/
To register this system, run: insights-client --register

Last login: Thu Jul 28 15:22:34 2022 from 192.168.106.1

二.ssh设置只允许student1, student2用户登录

1、创建student1、student2用户
[root@localhost ~]# useradd student1 -p 123456
[root@localhost ~]# useradd student2 -p 123456

2、修改配置文件/etc/ssh/sshd_config
......
[root@localhost ssh]# vim sshd_config
# Example of overriding settings on a per-user basis
#Match User anoncvs
#       X11Forwarding no
#       AllowTcpForwarding no
#       PermitTTY no
#       ForceCommand cvs server
AllowUsers student1 student2

3、重启sshd服务
[root@localhost ssh]# systemctl restart sshd

三.http请求方法get和post的区别
1,请求数据存储位置不同。GET方法请求数据存在于URL中,POST方法请求请求数据存在于BODY主体中,所以GET方法没有请求主体
2,安全性不同。因为数据存储的位置,POST相比GET更安全,主要原因还是因为请求数据的存放位置,GET在URL中,POST在BODY中。
3,请求数据大小不同。同时因为URL的限制,GET请求的数据存在大小限制(一般为2-4K),POST请求的数据根据php.ini配置文件而设定,不存在限制。
4,使用场景不同。因为两个请求方法的特性,GET请求通常使用在对数据不敏感的场景下,POST则通常使用在登陆,注册,留言,信息修改和提交等对数据敏感的场景下。

四.HTTP状态码,常用的状态码有哪些?
100:这个状态码是告诉客户端应该继续发送请求,这个临时响应是用来通知客户端的,部分的请求服务器已经接受,但是客户端应继续发送求请求的剩余部分,如果请求已经完成,就忽略这个响应,而且服务器会在请求完成后向客户发送一个最终的结果

200:这个是最常见的http状态码,表示服务器已经成功接受请求,并将返回客户端所请求的最终结果

202:表示服务器已经接受了请求,但是还没有处理,而且这个请求最终会不会处理还不确定

204:服务器成功处理了请求,但没有返回任何实体内容 ,可能会返回新的头部元信息

301:客户端请求的网页已经永久移动到新的位置,当链接发生变化时,返回301代码告诉客户端链接的变化,客户端保存新的链接,并向新的链接发出请求,已返回请求结果

404:请求失败,客户端请求的资源没有找到或者是不存在

500:服务器遇到未知的错误,导致无法完成客户端当前的请求。

503:服务器由于临时的服务器过载或者是维护,无法解决当前的请求

五.HTTP请求报文和响应报文
请求报文

GET / HTTP/1.1	请求行
Host: hackr.jp
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:13.0) Gecko/20100101 Firefox/13.0.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8
Accept-Language: ja,en-us;q=0.7,en;q=0.3
Acceptt-Encoding: gzip, deflate
DNT: 1
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache	各种头部字段

空行(CR + LF)
请求行:请求的方法 + 请求 URI + HTTP 版本 (空格分隔)
首部字段:包含表示请求和响应的各种条件和属性的各类首部。
一般有 4 种首部,分别是:通用首部、请求首部、响应首部和实体首部。

响应报文

HTTP/1.1 200 OK	状态行
Date: Fri, 13 Jul 2012 02:45:25 GMT
Server: Apache
Last-Modified: Fri, 31 Aug 2007 02:02:20 GMT
ETag: "45bael-16a-46d776ac"
Accept-Ranges: bytes
Content-Length: 362
Connection: close
Content-Type: text/html	各种头部字段

空行(CR + LF)

HTML 内容(PS: MD 没法合理展示)	报文主体

状态行:HTTP 版本 + 状态名 + 响应结果(空格分隔)
首部字段:包含表示请求和响应的各种条件和属性的各类首部。
一般有 4 种首部,分别是:通用首部、请求首部、响应首部和实体首部。

六.HTTP是如何保持连接状态的
通过会话跟踪技术:在浏览器和服务器之间来回传递一个标识符,这就是所谓的会话(session)跟踪。来自浏览器的所有包含同一个标识符(这里是SESSIONID)的请求同属于一个会话。
  会话的有效期直到它被显式地终止为止,或者当用户在一段时间内没有动作,由服务器自动设置为过期。
  目前没有办法通知服务器用户已经关闭浏览器,因为在浏览器和服务器之间没有一个持久的连接,并且浏览器关闭时也不向服务器发送信息。
  同时,关闭浏览器通常意味着会话ID丢失,COOKIE将过期,或者注入了信息的URL将不能再使用。
  所以当用户再次打开浏览器的时候,服务器无法将新得到的请求与以前的会话联系起来,则只能创建一个新的会话。

然而,所有与前一个会话有关的数据依然存在服务器上,直到会话过期被清除为止。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值