一招教你快速学会Linux ssh连接免密登录

简介: #编辑配置文件,在最后添加如下内容:AllowUsers student1 student2#重启ssh服务后生效

1.实现免密登录

[root@WHL ~]# 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:iaDflLcsNvaWW/U0QrMIV/G+6BNT4MVniSOqBnycP9E root@WHL
The key's randomart image is:
+---[RSA 3072]----+
|            oo. .|
|           o.+o.o|
|    o . o +.+ooo |
|   . + * * E.+.  |
|  .   * S o +.+  |
|   . o = + .o= o |
|    . B o.o .oo  |
|     o +o. ..    |
|       .o.  ..   |
+----[SHA256]-----+
[root@WHL ~]# cd .ssh
[root@WHL .ssh]# ls
id_rsa  id_rsa.pub
[root@WHL .ssh]#  scp /root/.ssh/id_rsa.pub root@192.168.193.129:/root/.ssh/authorized_keys
root@192.168.193.129's password: 
id_rsa.pub                                                                               100%  562   548.0KB/s   00:00    
[root@WHL .ssh]# ssh 192.168.193.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: Mon Jul 25 15:30:07 2022 from ::1
[root@WHL ~]# 

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

#编辑配置文件,在最后添加如下内容:

AllowUsers student1 student2

#重启ssh服务后生效

AllowUsers student1 sudent2
 ssh student3@192.168.193.129
student3@192.168.193.129's password: 
Permission denied, please try again.
[root@WHL ~]# ssh student1@192.168.193.129
student1@192.168.193.129's password: 
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
[student1@WHL ~]$ 

3.get和post的区别

POST和GET是HTTP请求的两种方式,都可实现将数据从浏览器向服务器发送带参数的请求。

HTTP请求底层协议都是TCP/IP,所以两者没有本质的区别。

GET方法

 GET是获取的意思,顾名思义就是获取信息。


GET是默认的HTTP请求方法。


GET方法把参数通过key/value形式存放在URL里面,如果参数是英文数字原样显示,如果是中文或者其他字符加密(Base64)URL长度一般有限制所以GET方法的参数长度不能太长。由于参数显示再地址栏所以不安全,一般需要保密的请求不使用GET。


POST方法

 POST是邮件的意思,顾名思义就像一封信一样将参数放在信封里面传输。它用于修改服务器上的数据,一般这些数据是应该保密的,就像信件一样,信的内容只能收信的人看见。例入当用户输入账号和密码登录时账号和密码作为参数通过HTTP请求传输到服务器,这时候肯定不能用GET方法将账号密码直接显示再URL上,这时候就应该用POST方法保证数据的保密性。

c4c63891eb1748348cb2291ec3a0f470.png

4.HTTP状态码,常用的状态码有哪些?

HTTP状态码的英文为HTTP Status Code。下面是常见的HTTP状态码:

391cefd08c1543b48402a3f99c67493a.png

200 – 请求成功


301 – 资源(网页等)被永久转移到其它URL


404 – 请求的资源(网页等)不存在


500 – 内部服务器错误


HTTP状态码的分类


HTTP状态码由三个十进制数字组成,第一个十进制数字定义了状态码的类型,后两个数字没有分类的作用。HTTP状态码共分为5种类型:


分类分类描述


1**信息,服务器收到请求,需要请求者继续执行操作


2**成功,操作被成功接收并处理


3**重定向,需要进一步的操作以完成请求


4**客户端错误,请求包含语法错误或无法完成请求


5**服务器错误,服务器在处理请求的过程中发生了错误


HTTP状态码表(版本1) 此表含状态码英文名称


状态 码状态码英文名称中文描述


1开头的状态码


100Continue继续。客户端应继续其请求


101Switching Protocols切换协议。服务器根据客户端的请求切换协议。只能切换到更高级的协议,例如,切换到HTTP的新版本协议


2开头的状态码


200OK请求成功。一般用于GET与POST请求


201Created已创建。成功请求并创建了新的资源


202Accepted已接受。已经接受请求,但未处理完成


203Non-Authoritative Information非授权信息。请求成功。但返回的meta信息不在原始的服务器,而是一个副本


204No Content无内容。服务器成功处理,但未返回内容。在未更新网页的情况下,可确保浏览器继续显示当前文档


205Reset Content重置内容。服务器处理成功,用户终端(例如:浏览器)应重置文档视图。可通过此返回码清除浏览器的表单域


206Partial Content部分内容。服务器成功处理了部分GET请求


3开头的状态码


300Multiple Choices多种选择。请求的资源可包括多个位置,相应可返回一个资源特征与地址的列表用于用户终端(例如:浏览器)选择


301Moved Permanently永久移动。请求的资源已被永久的移动到新URI,返回信息会包括新的URI,浏览器会自动定向到新URI。今后任何新的请求都应使用新的URI代替


302Found临时移动。与301类似。但资源只是临时被移动。客户端应继续使用原有URI


303See Other查看其它地址。与301类似。使用GET和POST请求查看


304Not Modified未修改。所请求的资源未修改,服务器返回此状态码时,不会返回任何资源。客户端通常会缓存访问过的资源,通过提供一个头信息指出客户端希望只返回在指定日期之后修改的资源


305Use Proxy使用代理。所请求的资源必须通过代理访问


306Unused已经被废弃的HTTP状态码


307Temporary Redirect临时重定向。与302类似。使用GET请求重定向


4开头的状态码


400Bad Request客户端请求的语法错误,服务器无法理解


401Unauthorized请求要求用户的身份认证


402Payment Required保留,将来使用


403Forbidden服务器理解请求客户端的请求,但是拒绝执行此请求


404Not Found服务器无法根据客户端的请求找到资源(网页)。通过此代码,网站设计人员可设置”您所请求的资源无法找到”的个性页面


405Method Not Allowed客户端请求中的方法被禁止


406Not Acceptable服务器无法根据客户端请求的内容特性完成请求


407Proxy Authentication Required请求要求代理的身份认证,与401类似,但请求者应当使用代理进行授权


408Request Time-out服务器等待客户端发送的请求时间过长,超时


409Conflict服务器完成客户端的PUT请求是可能返回此代码,服务器处理请求时发生了冲突


410Gone客户端请求的资源已经不存在。410不同于404,如果资源以前有现在被永久删除了可使用410代码,网站设计人员可通过301代码指定资源的新位置


411Length Required服务器无法处理客户端发送的不带Content-Length的请求信息


412Precondition Failed客户端请求信息的先决条件错误


413Request Entity Too Large由于请求的实体过大,服务器无法处理,因此拒绝请求。为防止客户端的连续请求,服务器可能会关闭连接。如果只是服务器暂时无法处理,则会包含一个Retry-After的响应信息


414Request-URI Too Large请求的URI过长(URI通常为网址),服务器无法处理


415Unsupported Media Type服务器无法处理请求附带的媒体格式


416Requested range not satisfiable客户端请求的范围无效


417Expectation Failed服务器无法满足Expect的请求头信息


5开头的状态码


500Internal Server Error服务器内部错误,无法完成请求


501Not Implemented服务器不支持请求的功能,无法完成请求


502Bad Gateway充当网关或代理的服务器,从远端服务器接收到了一个无效的请求


503Service Unavailable由于超载或系统维护,服务器暂时的无法处理客户端的请求。延时的长度可包含在服务器的Retry-After头信息中


504Gateway Time-out充当网关或代理的服务器,未及时从远端服务器获取请求


505HTTP Version not supported服务器不支持请求的HTTP协议的版本,无法完成处理


HTTP状态码列表(版本2) 此表的描述更详细些


状态码含义


100客户端应当继续发送请求。这个临时响应是用来通知客户端它的部分请求已经被服务器接收,且仍未被拒绝。客户端应当继续发送请求的剩余部分,或者如果请求已经完成,忽略这个响应。服务器必须在请求完成后向客户端发送一个最终响应。


101服务器已经理解了客户端的请求,并将通过Upgrade 消息头通知客户端采用不同的协议来完成这个请求。在发送完这个响应最后的空行后,服务器将会切换到在Upgrade 消息头中定义的那些协议。


只有在切换新的协议更有好处的时候才应该采取类似措施。例如,切换到新的HTTP 版本比旧版本更有优势,或者切换到一个实时且同步的协议以传送利用此类特性的资源。


102由WebDAV(RFC 2518)扩展的状态码,代表处理将被继续执行。


200请求已成功,请求所希望的响应头或数据体将随此响应返回。


201请求已经被实现,而且有一个新的资源已经依据请求的需要而建立,且其 URI 已经随Location 头信息返回。假如需要的资源无法及时建立的话,应当返回 ‘202 Accepted’。


202服务器已接受请求,但尚未处理。正如它可能被拒绝一样,最终该请求可能会也可能不会被执行。在异步操作的场合下,没有比发送这个状态码更方便的做法了。


返回202状态码的响应的目的是允许服务器接受其他过程的请求(例如某个每天只执行一次的基于批处理的操作),而不必让客户端一直保持与服务器的连接直到批处理操作全部完成。在接受请求处理并返回202状态码的响应应当在返回的实体中包含一些指示处理当前状态的信息,以及指向处理状态监视器或状态预测的指针,以便用户能够估计操作是否已经完成。


203服务器已成功处理了请求,但返回的实体头部元信息不是在原始服务器上有效的确定集合,而是来自本地或者第三方的拷贝。当前的信息可能是原始版本的子集或者超集。例如,包含资源的元数据可能导致原始服务器知道元信息的超级。使用此状态码不是必须的,而且只有在响应不使用此状态码便会返回200 OK的情况下才是合适的。


204服务器成功处理了请求,但不需要返回任何实体内容,并且希望返回更新了的元信息。响应可能通过实体头部的形式,返回新的或更新后的元信息。如果存在这些头部信息,则应当与所请求的变量相呼应。


如果客户端是浏览器的话,那么用户浏览器应保留发送了该请求的页面,而不产生任何文档视图上的变化,即使按照规范新的或更新后的元信息应当被应用到用户浏览器活动视图中的文档。


由于204响应被禁止包含任何消息体,因此它始终以消息头后的第一个空行结尾。


205服务器成功处理了请求,且没有返回任何内容。但是与204响应不同,返回此状态码的响应要求请求者重置文档视图。该响应主要是被用于接受用户输入后,立即重置表单,以便用户能够轻松地开始另一次输入。


与204响应一样,该响应也被禁止包含任何消息体,且以消息头后的第一个空行结束。


206服务器已经成功处理了部分 GET 请求。类似于 FlashGet 或者迅雷这类的 HTTP 下载工具都是使用此类响应实现断点续传或者将一个大文档分解为多个下载段同时下载。


该请求必须包含 Range 头信息来指示客户端希望得到的内容范围,并且可能包含 If-Range 来作为请求条件。


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

cd31f00ffc654a59885b4743ea8f4277.png

当客户端请求一个网页时,会先通过http协议将请求的内容封装在http请求报文之中,服务器收到该请求报文后根据协议规范进行报文解析,然后向客户端返回响应报文。


请求方法

1.OPTIONS

返回服务器针对特定资源所支持的HTTP请求方法,也可以利用向web服务器发送‘*’的请求来测试服务器的功能性

2.HEAD

向服务器索与GET请求相一致的响应,只不过响应体将不会被返回。这一方法可以再不必传输整个响应内容的情况下,就可以获取包含在响应小消息头中的元信息。

3.GET

向特定的资源发出请求。它本质就是发送一个请求来取得服务器上的某一资源。资源通过一组HTTP头和呈现数据(如HTML文本,或者图片或者视频等)返回给客户端。GET请求中,永远不会包含呈现数据。

4.POST

向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。 Loadrunner中对应POST请求函数:web_submit_data,web_submit_form

5.PUT

向指定资源位置上传其最新内容

6.DELETE

请求服务器删除Request-URL所标识的资源

7.TRACE

回显服务器收到的请求,主要用于测试或诊断

8.CONNECT

HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。


6.HTTP是如何保持连接状态的

无状态是指协议对于事务处理没有记忆能力,服务器不知道客户端是什么状态。从另一方面讲,打开一个服务器上的网页和你之前打开这个服务器上的网页之间没有任何联系。


HTTP是一个无状态的面向连接的协议,无状态不代表HTTP不能保持TCP连接,更不能代表HTTP使用的是UDP协议(无连接)。


从HTTP/1.1起,默认都开启了Keep-Alive,保持连接特性,简单地说,当一个网页打开完成后,客户端和服务器之间用于传输HTTP数据的TCP连接不会关闭,如果客户端再次访问这个服务器上的网页,会继续使用这一条已经建立的连接。

相关实践学习
CentOS 7迁移Anolis OS 7
龙蜥操作系统Anolis OS的体验。Anolis OS 7生态上和依赖管理上保持跟CentOS 7.x兼容,一键式迁移脚本centos2anolis.py。本文为您介绍如何通过AOMS迁移工具实现CentOS 7.x到Anolis OS 7的迁移。
相关文章
|
2月前
|
JavaScript 应用服务中间件 Linux
【应用服务 App Service】解决无法从Azure门户SSH登录问题
【应用服务 App Service】解决无法从Azure门户SSH登录问题
|
14天前
|
安全 Linux 网络安全
Linux端的ssh如何升级?
Linux端的ssh如何升级?
105 59
|
10天前
|
NoSQL Linux Redis
linux安装单机版redis详细步骤,及python连接redis案例
这篇文章提供了在Linux系统中安装单机版Redis的详细步骤,并展示了如何配置Redis为systemctl启动,以及使用Python连接Redis进行数据操作的案例。
20 2
|
10天前
|
Unix Linux 网络安全
python中连接linux好用的模块paramiko(附带案例)
该文章详细介绍了如何使用Python的Paramiko模块来连接Linux服务器,包括安装配置及通过密码或密钥进行身份验证的示例。
13 1
|
10天前
|
Linux Python
Linux之centos安装clinkhouse以及python如何连接
Linux之centos安装clinkhouse以及python如何连接
|
2月前
|
安全 Shell Linux
如何禁止某个用户使用ssh登录
本文介绍了五种禁止用户通过SSH登录的方法:1) 修改`/etc/ssh/sshd_config`文件中的`DenyUsers`和`DenyGroups`来阻止特定用户或用户组登录;2) 将用户的默认shell设置为`/usr/sbin/nologin`或`/bin/false`以禁用其SSH访问;3) 利用PAM(可插入认证模块)通过编辑`/etc/security/sshd.conf`来限制登录权限;4) 通过编辑`/etc/hosts.deny`文件拒绝特定用户的SSH访问;5) 锁定或禁用用户账号以阻止所有类型的登录。每种方法都提供了详细的步骤指导。
84 1
|
2月前
|
网络安全 数据安全/隐私保护
VSC通过 SSH 连接到远程服务器时,每次都需要输入密码
VSC通过 SSH 连接到远程服务器时,每次都需要输入密码
200 0
|
2月前
|
Linux 网络安全
Linux开启ssh
Linux开启ssh
34 0
|
2月前
|
Linux 网络安全 网络架构
如何处理在学校Linux连接不上服务器
如何处理在学校Linux连接不上服务器
39 0
|
2月前
|
缓存 NoSQL Linux
【Azure Redis 缓存】Linux VM使用6380端口(SSL方式)连接Azure Redis (redis-cli & stunnel)
【Azure Redis 缓存】Linux VM使用6380端口(SSL方式)连接Azure Redis (redis-cli & stunnel)
下一篇
无影云桌面