0


SSH远程访问及控制

一、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、登录验证

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

登录测试

标签: ssh 服务器 网络

本文转载自: https://blog.csdn.net/A6985HG/article/details/140323848
版权归原作者 不喜欢就睡大觉 所有, 如有侵权,请联系我们删除。

“SSH远程访问及控制”的评论:

还没有评论