admin 管理员组文章数量: 887021
2024年3月11日发(作者:会matlab可以找工作吗)
7.2 任务一:建立SSH服务(田钧)
7.2.1 SSH协议简介
SSH的英文全称为Secure Shell,是IETF(Internet Engineering Task Force)的Network
Working Group所制定的一族协议,其目的是要在非安全网络上提供安全的远程登录和其他
安全网络服务。可以简单理解为:Rlogin和Telnet等的替代方案。
SSH 协议在预设状态中提供两个服务器功能:
●类似telnet的远程联机使用 shell 的服务器,即ssh;
●类似FTP服务的sftp-server,提供更安全的 FTP 服务。
1. SSH基本框架
SSH协议框架中最主要的部分是三个协议:传输层协议、用户认证协议和连接协议。
同时SSH协议框架中还为许多高层的网络安全应用协议提供扩展的支持。它们之间的层次
关系可以用如下图7-1来表示:
图7-1 SSH协议的层次结构示意图
在SSH的协议框架中,传输层协议(The Transport Layer Protocol)提供服务器认证,
数据机密性,信息完整性 等的支持;用户认证协议(The User Authentication Protocol) 则
为服务器提供客户端的身份鉴别;连接协议(The Connection Protocol) 将加密的信息隧道
复用成若干个逻辑通道,提供给更高层的应用协议使用;各种高层应用协议可以相对地独立
于SSH基本体系之外,并依靠这个基本框架,通过连 接协议使用SSH的安全机制。
SSH的安全验证是如何工作的
从客户端来看,SSH提供两种级别的安全验证。
第一种级别(基于口令的安全验证)
只要你知道自己帐号和口令,就可以登录到远程主机。所有传输的数据都会被加密, 但
是不能保证你正在连接的服务器就是你想连接的服务器。可能会有别的服务器在冒充真正的
服务器, 也就是受到“中间人”这种方式的攻击。
第二种级别(基于密匙的安全验证)
需要依靠密匙,也就是你必须为自己创建一对密匙,并把公用密匙放在需要访问的服
务器上。 如果你要连接到SSH服务器上,客户端软件就会向服务器发出请求,请求用你的
密匙进行安全验证。服务器收到请求之后,先在你在该服务器的家目录下寻找你的 公用密
匙,然后把它和你发送过来的公用密匙进行比较。如果两个密匙一致,服务器就用公用密匙
加密“质询”(challenge)并把它发送给客户端软件。 客户端软件收到“质询”之后就可以用
你的私人密匙解密再把它发送给服务器。
用这种方式,你必须知道自己密匙的口令。但是,与第一种级别相比,第二种级别不
需要在网络上传送口令。
第二种级别不仅加密所有传送的数据,而且“中间人”这种攻击方式也是不可能的(因
为他没有你的私人密匙)。 但是整个登录的过程需要的时间稍微较长。
2 SSH数据加密方式
网络封包的加密技术通常由“一对公钥与私钥”(即“Public and Private keys”)进行加
密与解密的操作。主机端要传给客户端(client)的数据先由公钥加密,然后才在网络上传
输。到达客户端后,再由私钥将加密的资料解密。经过公钥(publick key)加密的数据在传
输过程中,由于数据本身经过加密,即使这些数据在途中被截取,要破解这些加密的数据,
需要花费好长一段时间。
3. SSH版本
SSH是由客户端和服务端的软件组成的,有两个不兼容的版本分别是:1.x和2.x。 用
SSH 2.x的客户程序是不能连接到SSH 1.x的服务程序上去的。OpenSSH 2.x同时支持SSH
1.x和2.x。
SSH protocol version 1
每一部SSH服务器主机都可以用RSA加密方式产生一个1024-bit的RSA Key,这个
RSA的加密方式主要用来产生公钥与私钥的演算方法。
version 1的整个联机加密步骤:
当每次SSH daemon(sshd)启动时,产生768-bit的公钥(或称为server key)存放在
Server 中;若有客户端的ssh联机需求传送来时,Server将这公钥传给客户端。
此时,客户端比对该公钥的正确性。比对的方法是利用/etc/ssh/ssh_known_hosts或
~/.ssh/known_hosts 档案内容。
在客户端接受该768-bit的server key后,客户端随机产生256-bit的私钥(host key),
并且以加密方式将server key与host key整合成完整的Key,并将该Key传送给server;
Server与客户端在本次联机中以该1024-bit的Key进行数据的传递。由于客户端每次256-bit
的Key是随机取的,因而本次联机与下次联机的Key可能不一样。
SSH protocol version 2
SSH version 1的联机中,Server单纯的接受来自客户端的private key,如果在联机过程
中private key被取得后,cracker 就可能在既有的联机当中插入一些攻击码,使得联机发生
问题。
为了改进这个缺点,在SSH version 2中,SSH server不再重复产生server key,而是在
与客户端建立private key时,利用Diffie-Hellman的演算方式, 共同确认来建立private key,
然后将该private key与public key组成一组加解密的金钥。同样,这组金钥也仅是在本次的
联机中有效。
透过这个机制可见,由于server/client两者之间共同建立了private key,若private key
落入别人手中,由于server端还会确认联机的一致性,使cracker没有机会插入有问题的攻
击码。即ssh version 2 是比较安全的。
7.2.2 SSH常用操作
1. 启动 SSH 服务
Linux 系统中,预设含有SSH的所有需要的套件,包含可以产生密码等协议的OpenSSL
套件与OpenSSH套件,直接启动即可使用。
以SSH daemon(简称 sshd)手动启动的步骤如下:
版权声明:本文标题:SSH服务 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1710119284h559482.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论