Linux--- SSH服务

一、ssh服务简介

1、什么是ssh

        SSH(Secure Shell)是一种安全通道协议,主要用来实现字符界面的远程登录、远程复制等功能。SSH 协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令,SSH 为建立在应用层和传输层基础上的安全协议。对数据进行压缩,加快传输速度。

2、ssh协议

  • SSH(Secure Shell):SSH是一种加密网络协议,用于通过安全通道在不安全网络上进行远程访问和管理。它提供了加密的通信会话,包括远程登录和执行命令,以及传输文件等功能
  • Telnet:虽然不安全,但仍然被用于远程登录到服务器或设备,通常用于简单的文本交互

1.ssh的作用

SSHD 服务使用 SSH 协议可以用来进行远程控制,或在计算机之间传送文件。

ssh服务端主要包括两个服务功能 ssh远程链接和sftp服务(文件传输功能)

2.ssh的优点

数据传输是加密的,可以防止信息泄露

数据传输是压缩的,可以提高传输速度

3.常用的ssh软件介绍

SSH 客户端:finalshell  xshell  putty

   secureCRT   MobaXterm

SSH 服务端:openSSH (Centos 7 默认安装)

4.openSSH 服务器配置文件

服务名称:sshd
服务端主程序:/usr/sbin/sshd  
服务端配置文件:/etc/ssh/sshd_config 
客户端配置文件:/etc/ssh/ssh_config

openSSH是实现SSH协议的开源软件项目,适用于各种UNIX、Linux操作系统。

执行“systemctl start sshd”命令即可启动sshd服务。默认端口使用的22端口

存放公钥的位置:

Linux--- SSH服务_第1张图片

3、公钥传输原理:

Linux--- SSH服务_第2张图片

① 客户端发起连接请求

② 服务端返回自己的公钥以及一个会话id(此处客户端得到服务端的公钥)

③ 客户端生成密钥对

④ 客户端用自己的公钥异或会话id,计算出一个值res,并用服务端的公钥加密

⑤ 客户端发送加密值到服务端,服务端用私钥解密,得到res

⑥ 服务端用解密后的值res异或会话id,计算出客户端的公钥(此处服务端得到客户端公钥)

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

4、加密通讯原理

Linux--- SSH服务_第3张图片

1、对称加密

1. 概念

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

2.常用算法

对称加密算法中常用的算法有:DES、3DES、TDEA、Blowfish、RC2、RC4、RC5、IDEA、SKIPJACK等。

3. 特点

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

4. 优缺点

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

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

2、非对称加密

1. 概念

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

2. 常用算法

RSA:目前使用最广泛的算法

DSA:数字签名算法,和 RSA 不同的是 DSA仅能用于数字签名,不能进行数据加密解密,其安全性和RSA相当,但其性能要比RSA快

ECC(椭圆曲线加密算法)

ECDSA:椭圆曲线签名算法,是ECC和 DSA的结合,相比于RSA算法,ECC 可以使用更小的秘钥,更高的效率,提供更高的安全保障

3. 原理

        首先ssh通过加密算法在客户端产生密钥对(公钥和私钥),公钥发送给服务器端,自己保留私钥,如果要想连接到带有公钥的SSH服务器,客户端SSH软件就会向SSH服务器发出请求,请求用联机的用户密钥进行安全验证。SSH服务器收到请求之后,会先在该SSH服务器上连接的用户的家目录下。

4. 优缺点

相比于对称加密技术,非对称加密技术安全性更好,但性能更慢

二、SSH的配置

在linux中实现ssh,是通过opsnSSH的sshd服务提供的

1、服务端配置文件

/etc/ssh/sshd_config

服务端配置

Linux--- SSH服务_第4张图片

Linux--- SSH服务_第5张图片

2、客户端配置文件

/etc/ssh/ssh_config

1.首次连接

Linux--- SSH服务_第6张图片

2.连接到指定的用户

Linux--- SSH服务_第7张图片

3.修改端口号

Linux--- SSH服务_第8张图片

4.用指定的端口号登录

Linux--- SSH服务_第9张图片

3、跳板机

Linux--- SSH服务_第10张图片

1.远程登录加命令操作

Linux--- SSH服务_第11张图片

三、黑白名单

1、白名单

1.配置白名单的文件

Linux--- SSH服务_第12张图片

Linux--- SSH服务_第13张图片

Linux--- SSH服务_第14张图片

Linux--- SSH服务_第15张图片

2、黑名单配置

Linux--- SSH服务_第16张图片

Linux--- SSH服务_第17张图片

Linux--- SSH服务_第18张图片

四、修改默认端口

Linux--- SSH服务_第19张图片

Linux--- SSH服务_第20张图片

五、阻止用户登录

Linux--- SSH服务_第21张图片

Linux--- SSH服务_第22张图片

 1、修改pam认证为了阻止用户登录

Linux--- SSH服务_第23张图片

Linux--- SSH服务_第24张图片

Linux--- SSH服务_第25张图片

六、ssh实践

建议使用非默认端口 22

禁止使用protocol version 1

限制可登录用户 白名单

设定空闲会话超时时长

利用防火墙设置ssh访问策略

仅监听特定的IP地址 公网 内网

基于口令认证时,使用强密码策略,比如:tr -dc A-Za-z0-9_ < /dev/urandom | head -c 12| xargs

使用基于密钥的认证

禁止使用空密码

禁止root用户直接登录

限制ssh的访问频度和并发在线数

经常分析日志 分离

如果有一天登录ssh变得非常非常慢,请禁用反向解析

七、进行免密登录

Linux--- SSH服务_第26张图片

Linux--- SSH服务_第27张图片

Linux--- SSH服务_第28张图片

检验是否免密登录

Linux--- SSH服务_第29张图片

你可能感兴趣的:(Linux网络,linux,ssh,运维)