SSH远程访问及控制

不喜欢就睡大觉 2024-10-25 09:07:28 阅读 86

目录

一、SSH远程管理

1、SSH定义

2、SSH客户端和服务端

3、SSH工作类型

3.1、对称加密

3.2、非对称加密

4、SSH工作原理

公钥传输原理

4.1、基本概念

4.2、工作过程

5、OpenSSH服务器

二、SSH远程登录方式

1、SSH直接远程登录

2、SSH指定端口登录

3、黑白名单

3.1、配置白名单

3.2、配置黑名单

 三、配置密钥对验证

1、创建密钥

2、将密钥发送到服务端

3、登录验证


一、SSH远程管理

1、SSH定义

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

2、SSH客户端和服务端

SSH客户端: Putty、 Xshell、 CRT、MobaXterm、FinalShellSSH服务端: 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、登录验证

 可开启密钥验证,关闭密码验证,如此只有密钥的客户端才可连接到远程服务端 

登录测试 

 



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。