[网络安全]SSH服务简介

5 篇文章 0 订阅

SSH服务详解

第1章 SSH服务

1.1 SSH服务协议说明

Secure Shell(SSH,安全外壳)是由IETF(The Internet Engineering Task Force)制定的建立在应用层基础上的安全网络协议
SSH是专为远程登录会话和其他网络服务提供安全性的协议,可有效弥补网络中的漏洞(传统的网络服务应用程序如ftp、pop和telnet等在本质上都是不安全的,因为它们在网络上用明文传送口令和数据,别有用心的人非常容易就可以截获这些口令和数据。而且,这些服务程序的安全验证方式也是有其弱点的,就是很容易受到"中间人"(man-in-the-middle)攻击[1]),SSH有很多功能,它既可以代替Telnet,又可以为FTP、POP、甚至为PPP提供一个安全的"通道
通过SSH,可以把所有传输的数据进行加密,"中间人"这种攻击方式就不可能实现了,也能够防止DNS欺骗[2]和IP欺骗[3]。还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。目前已经成为Linux系统的标准配置

用户ssh远程登录过程:
1)远程主机收到用户的登录请求,把自己的公钥发给用户。
2)用户使用这个公钥,将登录密码加密后,发送回来。
3)远程主机用自己的私钥,解密登录密码,如果密码正确,就同意用户登录。

1.2 SSH主要组成部分:

(1)传输层协议[SSH-TRANS]
提供了服务器认证,保密性及完整性
此外它有时还提供压缩功能。
SSH-TRANS 通常运行在TCP/IP连接上,也可能用于其它可靠数据流上
SSH-TRANS提供了强力的加密技术、密码主机认证及完整性保护
该协议(Secure Shell)中的认证基于主机,并且该协议不执行用户认证
(2)用户认证协议[SSH-USERAUTH]
用于向服务器提供客户端用户鉴别功能,它运行在传输层协议SSH-TRANS上面
当SSH-USERAUTH开始后,它从低层协议那里接收会话标识符(从第一次密钥交换中的交换哈希Hash)
会话标识符唯一标识此会话并且适用于标记以证明私钥的所有权
SSH-USERAUTH 也需要知道低层协议是否提供保密性保护
(3)连接协议 [SSH-CONNECT]
将多个加密隧道分成逻辑通道
它运行在用户认证协议上
它提供了交互式登录话路、远程命令执行、转发TCP/IP连接和转发X11连接

1.3 SSH验证编辑

客户端来看,SSH提供两种级别的安全验证:
第一种级别(基于口令的安全验证):
只要你知道自己帐号和口令,就可以登录到远程主机
所有传输的数据都会被加密,但是不能保证你正在连接的服务器就是你想连接的服务器
可能会有别的服务器在冒充真正的服务器,也就是受到“中间人”这种方式的攻击

注意事项(口令登录):
如果你是第一次登录对方主机,系统会出现下面的提示:
  $ ssh user@host
  The authenticity of host ‘host (12.18.429.21)’ can’t be established.
  RSA key fingerprint is 98:2e:d7:e0🇩🇪9f:ac:67:28:c2:42:2d:37:16:58:4d.
  Are you sure you want to continue connecting (yes/no)?

这段话的意思是,无法确认host主机的真实性,只知道它的公钥指纹,问你还想继续连接吗?

所谓"公钥指纹",是指公钥长度较长(这里采用RSA算法,长达1024位)
很难比对,所以对其进行MD5计算,将它变成一个128位的指纹,再进行比较,就容易多了

第二种级别(基于密匙的安全验证):
需要依靠密匙,也就是你必须为自己创建一对密匙,并把公用密匙放在需要访问的服务器上
如果你要连接到SSH服务器上,客户端软件就会向服务器发出请求,请求用你的密匙进行安全验证
服务器收到请求之后,先在该服务器上你的主目录下寻找你的公用密匙,然后把它和你发送过来的公用密匙进行比较。如果两个密匙一致,服务器就用公用密匙加密“质询”(challenge)并把它发送给客户端软件。客户端软件收到“质询”之后就可以用你的私人密匙解密再把它发送给服务器

用这种方式,你必须知道自己密匙的口令(id_rsa,密钥,“id_rsa.pub(公钥)”,“id_rsa(密钥)”,密钥和公钥都通过RSA算法获得)

1.4 SSH端口

ssh 默认端口是22
安全协议版本sshv2和sshv1(有漏洞)

ssh服务端主要包括两个服务功能:ssh远程链接sftp服务

1.5 命令参数
参数说明
Port指定sshd进程监听的端口号,默认为22.可以使用多条指令监听多个端口.默认将在本机的所有网络接□上监听,但是可以通过ListenAddress指走只在某个特定的接口上监听.
PermitEmptyPasswords是否允许密码为空的用户远程登录.默认为"no"
PermitRootLogin是否允许root登录.可用值如下:“yes”(默认)表示允许."no"表示禁止.
“without-password”表示禁止使用密码认证登录."forced-commands-only"表示只有在指走了command选项的情况下才允许使用公钥认证登录.同时其它认证方法全部被禁止.这个值常用于做远程备份之类的事情.1.多开一个窗口2.临时多部署一条连接方式3.给普通用户sudo权限
UseDNS指定定sshd是否应该对远程主机名进行反向解折,以检查此主机名是否与其IP地址真实对应.默认值为"yes”.
ListenAddress指定监听并提供服务相应的网卡地址信息
登录 ssh -i root@ip
1.6 进行ssh传输测试:
scp -i (需要传输的文件路径) root@ip(传送目标路径地址)

批注:
[1]所谓"中间人"攻击的方式就是"中间人"冒充真正的服务器接收你传给服务器的数据,然后再冒充你把数据传给真正的服务器(类似于ASP攻击等)服务器和你之间的数据传送被"中间人"一转手做了手脚之后,就会出现很严重的问题
攻击描述:
如果有人截获了登录请求,然后冒充远程主机,将伪造的公钥发给用户,那么用户很难辨别真伪。因为不像https协议,SSH协议的公钥是没有证书中心(CA)公证的,也就是说,都是自己签发的。可以设想,如果攻击者插在用户与远程主机之间(比如在公共的wifi区域),用伪造的公钥,获取用户的登录密码。再用这个密码登录远程主机,那么SSH的安全机制就荡然无存了

[2]DNS欺骗就是攻击者冒充域名服务器的一种欺骗行为
原理:如果可以冒充域名服务器,然后把查询的IP地址设为攻击者的IP地址,这样的话,用户上网就只能看到攻击者的主页,而不是用户想要取得的网站的主页了,这就是DNS欺骗的基本原理.注:DNS欺骗其实并不是真的"黑掉"了对方的网站,而是冒名顶替、招摇撞骗罢了

[3]IP地址欺骗是指行动产生的IP数据包为伪造的源IP地址(类似于SYN攻击,但SYN攻击伪造的IP是不存在的),以便冒充其他系统或发件人的身份
这是一种黑客的攻击形式,黑客使用一台计算机上网,而借用另外一台机器的IP地址,从而冒充另外一台机器与服务器打交道

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
### 回答1: Linux SSH服务是一种安全的远程登录协议,可以在不同的计算机之间进行加密通信和文件传输。它可以通过公共网络连接到远程服务器,提供了一种安全的远程访问方式,可以在不同的操作系统之间进行通信和交互。Linux SSH服务是Linux系统中非常重要的一部分,可以提高系统的安全性和可靠性。 ### 回答2: Linux的SSH服务是一种远程登录协议,全称为Secure Shell。它允许用户通过一个加密通道远程登录到Linux系统,使用户能够在本地计算机上通过命令行界面访问和管理远程服务器。 SSH服务使用非对称加密机制来验证用户身份和保护通信过程中的数据安全。当用户通过SSH客户端连接到远程服务器时,服务器会向客户端发送一个公钥。客户端使用这个公钥对服务器的身份进行验证,并生成一个会话密钥进行后续通信。这种密钥交换的方式保证了通信过程中的数据传输安全。 SSH服务的优点之一是其高度安全性。通过SSH登录到远程服务器时,用户的密码以及所有数据都会以加密的形式传输,防止了敏感信息被窃取。此外,SSH还支持密钥身份验证,允许用户使用公钥/私钥对进行登录,提供了更高的安全性。 此外,SSH服务还提供了其他一些功能。用户可以通过SSH隧道在不同的计算机之间建立安全的通信通道,以便于传输其他协议的数据。用户还可以使用SSH远程执行命令、传输文件等。 总之,Linux的SSH服务是一种安全、可靠的远程登录协议,它通过加密通道保证了用户身份验证和数据传输的安全,为用户提供了方便的远程管理和操作方法。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值