2024年6月9日发(作者:)
SSH是英文Secure Shell的简写形式。通过使用SSH,你可以把所有传输的数据
进行加密,这样“中间人“这种攻击方式就不可能实现了,而且也能够防止DNS
欺骗和IP欺 骗。使用SSH,还有一个额外的好处就是传输的数据是经过压缩的,
所以可以加快传输的速度。SSH有很多功能,它既可以代替Telnet,又可以为
FTP、Pop、甚至为PPP提供一个安全的 “通道“。
最初的SSH是由芬兰的一家公司开发的。但是因为受版权和加密算法的限制,现
在很多人都转而使用OpenSSH。OpenSSH是SSH的替代软件包,而且是免费的,
可以预计将来会有越来越多的人使用它而不是SSH。
SSH是由客户端和服务端的软件组成的,有两个不兼容的版本分别是:和。 用
SSH 的客户程序是不能连接到SSH 的服务程序上去的。OpenSSH 同时支持SSH
和。 SSH协议的内容
SSH协议是建立在应用层和传输层基础上的安全协议,它主要由以下三部分组
成,共同实现SSH的安全保密机制。
传输层协议,它提供诸如认证、信任和完整性检验等安全措施,此外它还可以任
意地提供数据压缩功能。通常情况下,这些传输层协议都建立在面向连接的TCP
数据流之上。
用户认证协议层,用来实现服务器的跟客户端用户之间的身份认证,它运行在传
输层协议之上。
连接协议层,分配多个加密通道至一些逻辑通道上,它运行在用户认证层协议之
上。
当安全的传输层连接建立之后,客户端将发送一个服务请求。当用户认证层连接
建立之后将发送第二个服务请求。这就允许新定义的协议可以和以前的协议共
存。连接协议提供可用作多种目的通道,为设置安全交互Shell会话和传输任意
的TCP/IP端口和X11连接提供标准方法。 SSH的安全验证
从客户端来看,SSH提供两种级别的安全验证。
第一种级别(基于口令的安全验证),只要你知道自己的帐号和口令,就可以登
录到远程主机,并且所有传输的数据都会被加密。但是,这种验证方 式不能保
证你正在连接的服务器就是你想连接的服务器。可能会有别的服务器在冒充真正
的服务器,也就是受到“中间人“这种攻击方式的攻击。
第二种级别(基于密匙的安全验证),需要依靠密匙,也就是你必须为自己创建
一对密匙,并把公有密匙放在需要访问的服务器上。如果你要连接 到SSH服务
器上,客户端软件就会向服务器发出请求,请求用你的密匙进行安全验证。服务
器收到请求之后,先在你在该服务器的用户根目录下寻找你的公有密 匙,然后
把它和你发送过来的公有密匙进行比较。如果两个密匙一致,服务器就用公有密
匙加密“质询“(challenge)并把它发送给客户端软件。客户端 软件收到“质
询“之后就可以用你的私人密匙解密再把它发送给服务器。
与第一种级别相比,第二种级别不需要在网络上传送用户口令。但是整个登录的
过程可能慢一些。 SSH的应用
首先,SSH最常见的应用就是,用它来取代传统的Telnet、FTP等网络应用程序,
通过SSH登录到远方机器执行你想进行的工作与命 令。在不安全的网路通讯环
境中,它提供了很强的验证(authentication)机制与非常安全的通讯环境。实
际上,SSH开发者的原意是设计它来取 代原UNIX系统上的rcp、rlogin、rsh
等指令程序的;但经过适当包装后,发现它在功能上完全可以取代传统的
Telnet、FTP等应用程序。
传统 BSD 风格的 r 系列指令(如 rcp,rsh,rlogin)往往都被视为不安全的,
很容易就被各种网络攻击手段所破解,几乎所有找得到有关 UNIX安全的书或文
件,都会一而再、再而三地警告系统管理者,留心r系列指令的设定,甚至要求
系统管理者将r系列指令通通关闭。
而用来替代r系列指令的SSH,则在安全方面做了极大的强化,不但对通讯内容
可以进行极为安全的加密保护,同时也强化了对身份验证的安全 机制,它应用
了在密码学(Cryptography)中已发展出来的数种安全加密机制,如 Symmetric
Key Cryptography, Asymmetric Key Cryptography, One-way Hash Function,
Random- number Generation等,来加强对于身份验证与通讯内容的安全保护。
通讯时资料的加密有IDEA,three- key triple DES,DES,RC4-128,TSS,Blowfish
等数种多种安全加密算法可供选择,加密的key则是通过 RSA 进行交换的。资
料的加密可以对抗IP spoofing,RSA这种非对称性的加密机制则可用来对抗DNS
spoofing与 IP routing spoofing,同时RSA也可以进行对主机身份的验证。
其次,通过使用用SSH可以在本地主机和远程服务器之间设置“加密通道“,并
且这样设置的“加密通道“可以跟常见的Pop应用程序、X应 用程序、Linuxconf
应用程序相结合,提供安全保障。 SSH的“加密通道“是通过“端口转发“来
实现的。你可以在本地端口(没有用到的)和在远程服务器上运行的某个服务的
端口之间建立“加密通道“。然后只要 连接到本地端口。所有对本地端口的请
求都被SSH加密并且转发到远程服务器的端口。当然只有远程服务器上运行SSH
服务器软件的时候“加密通道“才能工 作。
openssh的安装和启动
tony@tonybox:~$ sudo aptitude updatetony@tonybox:~$ sudo aptitude
install openssh-server
Reading Done
Building Done
发布评论