及 OpenSSH 简介 SSH ( Secure Shell )是以远程联机服务方式操作 服务器 时的较为 安全 的 解决方案 。它最初由芬兰的一家公司 开发 ,但由于受版" name="description" />
SSHMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">及OpenSSH简介
SSH(Secure Shell)是以远程联机服务方式操作服务器时的较为安全的解决方案。它最初由芬兰的一家公司开发,但由于受版权和加密算法的限制,很多人转而使用免费的替代软件OpenSSH。
SSH及OpenSSH简介
SSH(Secure Shell)是以远程联机服务方式操作服务器时的较为安全的解决方案。它最初由芬兰的一家公司开发,但由于受版权和加密算法的限制,很多人转而使用免费的替代软件OpenSSH。
用户通过SSH可以把所有传输的数据进行加密,使“中间人”的攻击方式不可能实现,而且也能够防止DNS和IP欺骗。它还有一个额外的好处是传输的数据是经过压缩的,可以加快传输的速度。SSH作用广泛,既可以代替Te.net,又可以为FTP、POP,甚至为PPP提供一个安全的“通道”。SSH协议在预设的状态中,提供两个服务器功能:一个是类似Telnet的远程联机使用Shell服务器,即俗称SSH功能;另一个是类似FTP服务的SFTP-Server功能,可提供更安全的FTP服务。
SSH的安全验证如何工作呢?主要依靠联机加密技术。从客户端来看,有以下两种安全验证级别:
1.基于口令的安全验证(ssh1) 只要知道自己的账号和口令,就可以登录到远程主机。所有传输的数据都将被加密,但是不能保证正在连接的服务器就是想要连接的服务器。可能受到“中间人”的攻击。
2.基于密匙的安全验证(ssh2) 需要依靠密匙,即用户必须为自己创建一对密匙,并把公用密匙放在需要访问的服务器上。如果要连接到SSH服务器上,客户端软件就会向服务器发出请求,请求用密匙进行安全验证。服务器收到请求之后,先在该服务器的home目录下寻找公用密匙,然后把它和发送过来的公用密匙进行比较。如果两个密匙一致,服务器就用公用密匙加密“质询”(challenge),并把它发送给客户端软件。客户端软件收到“质询”后,就可以用私人密匙解密再把它发送给服务器。使用这种方式,用户必须知道自己密匙的口令。与第一种级别相比,这种级别不需要在网络上传送口令,不仅加密所有传送的数据,而且阻止了“中间人”攻击方式。整个登录的过程一般需要10秒。
OpenSSH的安装和启动
OpenSSH的安装非常简便,操作如下。
1.下载软件包。到http://www.openssh.com下载最新软件包OpenSSH
2. 解压及安装,代码如下:
# tar zxvf openssh-3.5p1.tar.gz
# cd openssh-3.5p1
# ./configure --prefix=/opt --sysconfdir=/etc/openssh
# make
# make install
# cd /etc/rc.d/init.d/
# vi sshd
//加入/opt/sbin/sshd启动进程
# cd /etc/rc.d/rc3.d/
# ln -s ../init.d/sshd S59sshd
重启计算机以后,用下列命令进行测试:
# ssh -l geminis www.test.com
The authenticity of host 'www.test.com (*.*.*.*)' can't be established.
RSA key fingerprint is a7:35:
Are you sure you want to continue connecting (yes/no)?
因为是第一次登录主机,OpenSSH将显示不能识别该主机。键入“yes”,把主机的“识别标记”加到“~/.ssh/know_hosts”文件中。第二次访问这台主机的时候就不会再显示这条提示信息。然后,OpenSSH提示输入远程主机上的账号及口令。输入完后就建立了SSH连接,可以像使用 Telnet一样使用OpenSSH。
配置基于密钥认证的OpenSSH
缺省情况下,SSH将默认使用口令验证方式。不需要对系统进行任何配置就可以使用账号和口令登录到远程主机。下面介绍如何配置并使用基于密匙认证的OpenSSH(假设用户名为geminis,主机IP为192.168.0.1)。
首先创建一对密匙(包括公匙和密匙,并且用公匙加密的数据只能用密匙解密),把公匙放到需要远程服务器上。当登录远程服务器时,客户端软件会向服务器发出请求,请求用密匙进行认证,代码如下:
# ssh-keygen -d
// 加上参数d是创建一个一基于ssh2的密匙对
#Generating public/private DSA key pair.
// 生成DSA加密模式的密匙对
# Enter file in which to save the key (/home/geminis/.ssh/id_dsa):
//存放密匙文件的路径,直接回车为默认目录
# Enter passphrase (empty for no passphrase):
//必须输入一个>4个字符的标识符
# Enter same passphrase again:
//重新确认一次
如果创建成功,系统将返回以下信息:
Your identification has been saved in /home/geminis/.ssh/id_dsa.
Your public key has been saved in /home/geminis/.ssh/id_dsa.pub.
The key fingerprint is:
29:1b:46:00:08:38:d5:87:da:96:e7:c4:a3:6b:b1:
接下来,把id_dsa.pub发布到服务器上。通过FTP将公匙文件“/home/admin/.ssh/id_dsa.pub”,复制到远程服务器的“/home/admin/.ssh”目录。如果.ssh目录不存在,可以用mkdir命令先建立。然后,将“id_dsa.pub”重命名为“authorized_keys2”,代码如下:
# mv id_dsa.pub authorized_keys2
# chmod 644 authorized_keys2
注意,如果authorized_keys2文件的权限不正确,会导致SSH连接失败。
服务器收到请求之后,在该服务器的宿主目录下寻找公匙,然后检查该公匙是否合法。如果合法就用公匙加密一随机数(即所谓的challenge)并发送给客户端软件。客户端软件收到后就用私匙解密再把它发送给服务器。因为用公匙加密的数据只能用密匙解密,服务器经过比较就可以知道该客户连接的合法性。连接代码如下:
# ssl -l geminis www.test.com
系统返回以下信息:
# Enter passphrase for key '/home/geminis/.ssh/id_dsa': ******
Last login: Wed Apr 16 12:31:49 2003 from www.geminis.com
OpenSSH客户端使用方法
1. Windows平台
客户端通常使用Windows平台,操作较为直观。下面对几种客户端工具进行介绍。
◆ PuTTY
在客户端使用SSH较好的工具是PuTTY,这是一个开源软件。用户可以根据自己的配置情况对该软件进行修改。
如果是第一次使用该软件,系统会提示下载有关主机的“识别标记”,选择“yes”,下次登录就不会出现提示框。
◆ Filezilla
Filezilla是客户端使用SFTP的一款不错的开源软件,对中文支持很好。
2. Linux终端
在Linux终端下使用SSH,优点是操作更方便,无须其它软件;缺点是不太直观。使用方法及命令介绍如下:
◆ SSH的使用
# ssh -l geminis www.test.com
Enter passphrase for key '/home/geminis/.ssh/id_dsa':
//输入以前设置的标识符
◆ SFTP的使用
# sftp www.test.com