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