一节课详解SSH协议

SSH介绍

 Telnet缺少安全的认证方式,而且传输过程采用TCP进行明文传输,存在很大的安全隐患。单纯提供Telnet服务容易招致DoS(Deny of Service)、主机IP地址欺骗、路由欺骗等恶意攻击。
 随着人们对网络安全的重视,传统的Telnet和FTP通过明文传送密码和数据的方式,已经慢慢不被人接受。SSH(Secure Shell)是一个网络安全协议,通过对网络数据的加密,解决了这个问题。它在一个不安全的网络环境中,提供了安全的远程登录和其他安全网络服务。
 SSH通过TCP进行数据交互,它在TCP之上构建了一个安全的通道。另外SSH服务除了支持标准端口22外,还支持其他服务端口,以防止受到非法攻击。

注意:

SSH协议包括SSH1.0,SSH1.5,SSH2.0

SSH的功能

SSH支持的客户端功能

 SSH客户端功能允许用户与支持SSH Server的路由器、UNIX主机等建立SSH连接

SFTP

 SFTP(SSH File Transfer Protocol)是SSH FTP的简称,是一种安全的FTP。SFTP建立在SSH连接的基础之上,远程用户可以安全地登录设备,进行文件管理和文件传送等操作,为数据传输提供了更高的安全保障。同时,由于设备提供了SFTP客户端功能,可以从本设备安全登录到远程SSH服务器上,进行文件的安全传输。

STelnet

 STelnet是基于SSH的安全Telnet服务。与Telnet相比,SSH服务器通过对客户端进行认证及双向的数据加密,为网络终端访问提供了安全的服务。

SCP

 SCP(Secure Copy)是基于SSH的安全协议,对客户端进行认证和数据加密,以保证在传统的非安全网络环境下进行安全的文件传输。
 SCP使用SSH进行数据传输和用户认证,从而确保数据传输的可靠性和机密性。客户端可以发送(上传)文件到服务器,亦可从服务器请求(下载)文件或目录。缺省情况下,SCP运行于TCP协议下的22号端口。

SSH服务支持其他端口

 SSH协议的标准侦听端口号为22,攻击者不断访问标准端口,导致带宽的浪费和服务器性能的下降,致使其他正常用户无法访问,这是一种DoS(拒绝服务)攻击。
 设定SSH服务端的侦听端口号为其他端口,攻击者不知道SSH侦听端口号的更改,可有效防止攻击者对SSH服务标准端口访问消耗带宽和系统资源。正常用户通过对非标准端口的SSH服务的访问,降低遭受DoS(拒绝服务)攻击可能性。
 只有合法的用户采用SSH服务器设定的非标准侦听端口才能建立Socket连接,进行SSH协议的版本号协商、算法协商及会话密钥生成、认证、会话请求、会话阶段等过程。

安全的远程访问

SSH通过以下措施实现在不安全网络上提供安全的远程访问:
 支持RSA(Revist-Shamir-Adleman Algorithm 非对称加密算法)/DSA(Digital-Signature Algorithm 数字签名算法)/ECC(Elliptic Curves Cryptography 椭圆曲线加密)公钥验证方式,根据非对称加密体系的加密原则,通过生成公钥和私钥,实现密钥的安全交换,最终实现安全的会话全过程。
 支持证书验证方式,客户端通过证书签名来进行服务器端验证,有效防止中间人攻击。
 支持数据加密标准DES(Data Encryption Standard)、3DES、AES(Advanced Encryption Standard)。
 SSH客户端与服务器端通信时,对传输的数据进行加密,包括用户名及口令,有效防止对口令的窃听。
 支持SM2椭圆曲线密码算法,SM2算法与RSA算法一样,同属于非对称密码算法体系,是基于ECC(Elliptic Curves Cryptography)算法的非对称算法。与RSA算法不同的是
 RSA算法是基于大数的因子分解算法,导致了RSA算法的密钥的长度也越来越长。而长密钥带来了运算速度较慢、密钥存储和管理不方便问题。ECC算法是基于离散对数的算法,很难破解,具有更高的安全性。与RSA算法相比,在相同安全性条件下,ECC算法可以大大减少密钥的长度。相较于RSA,椭圆曲线密码算法使用更短的密钥长度就能实现比较牢固的加密强度,同时由于密钥长度相对较短,加密速度也就相对较快。总而言之,ECC椭圆曲线密码算法具有以下优点:

  1. 相同的安全性,ECC算法的密钥长度比RSA算法更短。
  2. 计算量小,处理速度快。
  3. 存储空间小。
  4. 带宽要求低。

注意:

 为了保证更好的安全性,建议不要使用DES/3DES/RSA小于2048位的RSA算法做为SSH用户的认证和数据加密方式,推荐使用更安全的ECC认证算法

支持ACL应用

 ACL是访问控制列表。通过ACL对SSH类型的用户界面限制呼入呼出权限,防止一些非法地址的用户进行TCP连接,避免其进入SSH协商,借此提高SSH服务器安全性。

SSH原理介绍

 SSH和telnet、ftp等协议主要的区别在于安全性。这就引出下一个问题:如何实现数据的安全呢?首先想到的实现方案肯定是对数据进行加密。加密的方式主要有两种:
 对称加密(也称为秘钥加密)
 非对称加密(也称公钥加密)
对称加密,指加密解密使用同一套秘钥
对称加密的加密强度高,很难破解。但是在实际应用过程中不得不面临一个棘手的问题:如何安全的保存密钥呢?尤其是考虑到数量庞大的Client端,很难保证密钥不被泄露。一旦一个Client端的密钥被窃据,那么整个系统的安全性也就不复存在。

非对称加密应运而生。非对称加密有两个密钥:“公钥”和“私钥”
两个密钥的特性:公钥加密后的密文,只能通过对应的私钥进行解密。而通过公钥推理出私钥的可能性微乎其微。
使用非对称加密方案的登录流程
 远程Server收到Client端用户TopGun的登录

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SSH是一种安全的加密协议,使用它可以远程登录到服务器进行操作。如果我们每次登录都需要输入密码,那么日常工作效率会受到很大影响。为了解决这个问题,我们可以使用SSH Key来完成免密码登录。 SSH Key是一种加密的钥匙对,由公钥和私钥两部分组成。公钥存放在服务器上,私钥留存在客户端,并且需要加密保护。当客户端登录到服务器时,服务器会向客户端发送一个用于验证身份的随机字符串,客户端使用私钥对该字符串进行加密,然后发送给服务器。服务器收到加密后的字符串后,使用事先存放的公钥进行解密。如果解密成功,那么就说明客户端是合法的,并且可以顺利登录到服务器上。 下面是配置SSH Key的步骤: 1. 在客户端上生成SSH Key。打开终端窗口,输入命令 ssh-keygen -t rsa,按照提示输入私钥密码并确认即可。生成的公钥和私钥文件存放在~/.ssh目录下。 2. 将公钥添加到服务器上。使用命令ssh-copy-id -i ~/.ssh/id_rsa.pub user@hostname,其user为服务器上的用户名,hostname为服务器的IP地址或域名。 3. 配置SSH客户端。打开~/.ssh/config文件,添加以下内容: Host hostname HostName hostname User user IdentityFile ~/.ssh/id_rsa 其hostname和user分别为服务器的IP地址或域名和用户名,IdentityFile指定私钥文件的路径。 配置完成后,就可以使用ssh命令免密码登录到服务器了。如果您的私钥没有加密保护,则登录时不需要输入密码;如果私钥受到加密保护,则需要输入密码来解密私钥。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值