RHCE——笔记

第三章——远程连接服务器

1,远程连接服务器简介

(1)什么是远程连接服务器 远程连接服务器通过文字或图形接口方式来远程登录系统,让你在远程终端前登录linux主机以取得可操作主机接口(shell),而登录后的操作感觉就像是坐在系统前面一样。

(2)远程连接服务器的功能

分享主机的运算能力

(3)远程连接服务器的类型(以登录的连接界面来分类)

  • 文字接口 明文传输:Telnet 23、RSH等,目前非常少用 加密传输:SSH为主,已经取代明文传输

  • 图形接口:XDMCP远程控制、VNC(RFB)、XRDP(RDP3389)远程桌面等

(4)文字接口连接服务器 SSH(Secure Shell Protocol,安全的壳程序协议)它可以通过数据包加密技术将等待传输的数据包加 密后再传输到网络上。ssh协议本身提供两个服务器功能:一个是类似telnet的远程连接使用shell的服务器;另一个就是类似ftp服务的sftp-server,提供更安全的ftp服务。

2,连接加密技术

对称加密

同一秘钥既可以进行加密也可以进行解密

优势:使用一个秘钥它的加密效率高一些(快一些)

缺陷:秘钥传输的安全性(在网络传输中不传输秘钥)

应用: 传输数据(数据的双向传输)

非对称加密

产生一对秘:公钥:公钥加密 私钥:私钥解密(不会进行网络传输)

公钥(public key):提供给远程主机进行数据加密的行为,所有人都可获得你的公钥来将数据加密。

私钥(private key):远程主机使用你的公钥加密的数据,在本地端就能够使用私钥来进行解密。私钥只有自己拥有。

缺陷:公钥的安全性 客户端去访问一个服务器(假设数据被我们的hacker拦截了,hacker发送了自己的公钥给客户端,客户端用 hacker的公钥对数据进行加密,然后hacker用自己的私钥进行解密。从而获取到用户传送的隐私(用户和密码)信息,进一步对服务器动机);传送速度慢(效率低)

优势:安全性更高

应用: 单向的认证阶段(建立安全的连接保证后面对称加密的秘钥安全)

SSH工作过程:

在整个通讯过程中,为实现SSH的安全连接,服务端与客户端要经历如下五个阶段:

  1. 版本号协商阶段
  2. 密钥和算法协商阶段
  3. 认证阶段
  4. 会话请求阶段
  5. 交互会话阶段
1,TCP三次握手版本协商阶段

目前包括SSH1和SSH2两个版本,双方通过版本协商确定使用的版本。

服务端默认已经开启ssh服务,打开了22号端口,等待客户端来连接

服务器向客户端发送第一个报文: 告诉了客户端使用了ssh版本以及软件信息

客户端收到报文之后,拿出服务器的ssh版本,看一下自己是否支持,如果支持使用该版本

2,协商算法和确定对称秘钥阶段

(1)确认秘钥和加密算法

(2)进行秘钥交换

3,认证阶段

SSH客户端向服务端发起认证请求,服务端对客户端进行认证

(1)基于口令的1认证

(2)基于公钥的认证

1.Client将自己的公钥存放在Server上,追加在文件authorized_keys中。

2.Server端接收到Client的连接请求后,会在authorized_keys中匹配到Client的公钥pubKey,并生成随机数R,用Client的公钥对该随机数进行加密得到pubKey(R),然后将加密后信息发送给Client。

3.Client端通过私钥进行解密得到随机数R,然后对随机数R和本次会话的SessionKey利用MD5生成摘要Digest1,发送给Server端。

4.Server端会也会对R和SessionKey利用同样摘要算法生成Digest2。

5.Server端会最后比较Digest1和Digest2是否相同,完成认证过程。

4,会话请求阶段

认证通过后,客户端向服务器端发送会话请求,建立新的连接

5,交互会话阶段

会话请求通过后,服务器端和客户端进行信息的交互

传输数据的的阶段:数据时要被加密(对称加密方式),对称加密的秘钥就是sessionKey(客户端和服务服务端在秘钥交换阶段互相计算出来的,sessionKey未进行网络传输)

3,ssh服务配置

ssh——客户端配置文件 sshd——服务端

#ssh服务安装包openssh-server
[root@server1 ~]# vim /etc/ssh/sshd_config #相关配置文件

4,用户登录ssh服务器

实验一:修改ssh服务端口号

#修改ssh服务的端口号
[root@server1 ~]# vim /etc/ssh/sshd_config
Port 2222
[root@server1 ~]# systemctl disable firewalld
[root@server1 ~]# setenforce  0
[root@server1 ~]# getenforce
Permissive
[root@server1 ~]# systemctl restart sshd

实验二:拒绝root用户远程登陆

PermitRootLogin no
#重启服务后生效,使用时使用普通用户进行登陆,需要使用root用户时再切换

实验三:允许特定用户ssh登陆,其他用户都无法登陆

#编辑配置文件,在最后添加如下内容:
AllowUsers USERNAME
#USERNAME为你允许登陆的账号【需要在系统中useradd该账号】,如果是多个用户,中间用空格隔开
#重启ssh服务后生效

实验四:linux客户端通过秘钥登录linux服务端root用户

#创建密钥对
[root@web ~]# ssh-keygen -t rsa
ssh-keygen 生成、管理和转换认证密钥 -t制定类型 RSA
一对公私钥
/root/.ssh/id_rsa私钥文件,该文件所属者才有权限读取
/root/.ssh/id_rsa.pub公钥文件,所有人可读
#复制该公钥文件到服务端的该目录下
[root@web ~]# ssh-copy-id root@192.168.40.132
#在本地服务器上登陆对端服务器
[root@web ~]# ssh root@192.168.40.132

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值