目录
一、SSH远程管理
1、SSH定义
SSH(Secure Shell)是一种安全通道协议,主要用来实现字符界面的远程登录、远程 复制等功能。SSH 协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令,SSH 为建立在应用层和传输层基础上的安全协议。
2、SSH客户端和服务端
- SSH客户端: Putty、 Xshell、 CRT、MobaXterm、FinalShell
- SSH服务端: OpenSSH
网络
SSH客户端<------------------------------>SSH服务端
数据传输是加密的,可以防止信息泄漏
数据传输是压缩的,可以提高传输速度
3、SSH工作类型
3.1、对称加密
①、概念:
采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加 密,由于其速度快,对称性加密通常在消息发送方需要加密大量数据时使用
②、特点:
算法公开、计算量小、加密速度快、加密效率高。
③、缺点:
在数据传送前,发送方和接收方必须商定好秘钥,然后使双方都能保存好秘钥。 其次如果一方的秘钥被泄露,那么加密信息也就不安全了。另外,每对用户每次使用对称加密算法时, 都需要使用其他人不知道的独一秘钥,这会使得收、发双方所拥有的钥匙数量巨大,密钥管理成为双方 的负担
④、常用算法:
在对称加密算法中常用的算法有:DES、3DES、TDEA、Blowfish、RC2、RC4、RC5、IDEA、SKIPJACK 等。
3.2、非对称加密
①、概念:
非对称加密算法需要两个密钥:公开密钥(publickey:简称公钥)和私有密钥(privatekey:简称私 钥)。公钥与私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密。因为加密和解密 使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。
②、特点:
非对称加密使用一对密钥(公钥和私钥),其中公钥可以公开,而私钥必须保密。即使公钥被公开,只有拥有对应私钥的人才能解密数据,提供了强大的安全性。
③、缺点:
非对称加密算法(如RSA、DSA、ECC)的计算复杂度高,导致加密和解密速度慢,特别是在处理大量数据时。
④、常用算法:
RSA(RSA algorithm):目前使用最广泛的算法
DSA(Digital Signature Algorithm):数字签名算法,和 RSA 不同的是 DSA仅能用于数字签名, 不能进行数据加密解密,其安全性和RSA相当,但其性能要比RSA快
ECC(Elliptic curve cryptography,椭圆曲线加密算法)
ECDSA:Elliptic Curve Digital Signature Algorithm,椭圆曲线签名算法,是ECC和 DSA的结合, 相比于RSA算法,ECC 可以使用更小的秘钥,更高的效率,提供更高的安全保障
特性 | 对称加密 (Symmetric Encryption) | 非对称加密 (Asymmetric Encryption) |
---|---|---|
原理 | 使用相同的密钥进行加密和解密 | 使用一对密钥(公钥和私钥)进行加密和解密 |
优点 | 1. 加密解密速度快,适合大数据量加密 | 1. 密钥管理简单,公钥公开,私钥保密 |
2. 算法简单,计算复杂度低 | 2. 提供更高的安全性,难以破解 | |
3. 资源占用少,适合低资源环境 | 3. 支持数字签名和认证,确保数据完整性和身份验证 | |
缺点 | 1. 密钥管理复杂,需安全传输和存储 | 1. 加密解密速度慢,计算复杂度高 |
2. 密钥泄露会导致数据泄露 | 2. 资源占用多,不适合大数据量加密 | |
3. 无法实现数字签名和身份验证 | 3. 密钥长度较长,存储和处理开销大 |
4、SSH工作原理
公钥传输原理
4.1、基本概念
①、公钥:
概念:公钥是非对称加密中公开的密钥,可以自由地分发给任何人。
功能:用于加密数据:发送方使用接收方的公钥对数据进行加密,只有拥有相应私钥的接收方才能解密数据。用于验证数字签名:接收方使用发送方的公钥来验证发送方的数字签名,确保数据的真实性和完整性。
②、私钥:
概念:私钥是非对称加密中必须保密的密钥,只能由密钥持有者自己保存,不得公开。
功能:用于解密数据:接收方使用自己的私钥解密由其公钥加密的数据。用于生成数字签名:发送方使用自己的私钥对数据进行签名,接收方可以使用发送方的公钥验证签名,确保数据没有被篡改。
4.2、工作过程
①、客户端发起链接请求
②、服务端返回自己的公钥,以及一个会话ID(这一步客户端得到服务端公钥)
③、客户端生成密钥对
④、客户端用自己的公钥异或会话ID,计算出一个值Res,并用服务端的公钥加密
⑤、客户端发送加密值到服务端,服务端用私钥解密,得到Res
⑥、服务端用解密后的值Res异或会话ID,计算出客户端的公钥(这一步服务端得到客户端公钥)
⑦、最终:双方各自持有三个秘钥,分别为自己的一对公、私钥,以及对方的公钥,之后的所有通讯都 会被加密
5、OpenSSH服务器
OpenSSH 是实现SSH协议的开源软件项目,适用于各种UNIX、 Linux 操作系统。
Centos 7系统默认已安装openssh相关软件包,并将sshd 服务添加为开机自启动。
- 服务名称:sshd
- 服务端主程序:/usr/sbin/sshd
- 服务端配置文件:/etc/ssh/sshd config
- 客户端配置文件:/etc/ssh/ssh_config
二、SSH远程登录方式
1、SSH直接远程登录
ssh 远程主机用户名 @远程服务器主机名或IP地址
- 当前所登录的用户是 root 的话,当连接另一台主机时也是用 root 用户登录时,可以直接使用 ssh IP
ssh IP地址
2、SSH指定端口登录
- 查看端口
vim /etc/ssh/sshd_config #vim查看编辑ssh端口
- 进入vim编辑页面,找到端口,修改(增强安全性)
- 保存退出,用端口连接
ssh 远程主机用户名 @远程服务器主机名或IP 地址 -p 端口
- 第一次登录服务器时系统没有保存远程主机的信息,为了确认该主机身份会提示用户是否继续连接,输入yes 后登录,这时系统会将远程服务器信息写入用户主目录下$HOME/.ssh/known_hosts文件中,下次再进行登录时因为保存有该主机信息就不会再提示了
3、黑白名单
当希望只允许或禁止某些用户登录时,可以使用 AllowUsers 或 DenyUsers 配置,两者 用法类似(注意不要同时使用)
3.1、配置白名单
vim /etc/ssh/sshd_config #添加允许通过用户地址
- 进入vim编辑,添加
- 保存退出,并且刷新sshd
systemctl restart sshd #重启sshd
- 登录
3.2、配置黑名单
vim /etc/ssh/sshd_config #添加允许通过用户地址
- 进入vim编辑,添加
- 保存退出,并且刷新sshd
systemctl restart sshd #重启sshd
- 测试登录
三、配置密钥对验证
1、创建密钥
2、将密钥发送到服务端
- 查看服务端是否收到
3、登录验证
- 可开启密钥验证,关闭密码验证,如此只有密钥的客户端才可连接到远程服务端
登录测试