网络被攻击,很多情况是由于服务器提供了Telnet服务引起的。的确,对于UNIX系统,如果要远程管理它,必定要使用远程终端,而要使用远程终端,自然要在服务器上启动Telnet服务。但是Telnet服务有一个致命的弱点——它以明文的方式传输用户名及口令,所以,很容易被别有用心的人窃取口令。目前,一种有效代替Telnet服务的有用工具就是SSH服务。SSH客户端与服务器端通讯时,用户名及口令均进行了加密,有效防止了对口令的窃听。本文向大家介绍运行在常用操作系统上的SSH服务器软件包的使用。
首先,SSH软件包由两部分组成,一部分是服务器端软件包,另一部分是客户软件包。针对UNIX、Linux服务器操作系统,这两个软件包是分开打包在两个不同的文件中的。在Windows 9x/NT/2000中,也分为两部分,不同之处在于,服务器软件包只能运行在Windows NT及 Windows 2000 Server以上的版本中,而客户端SSH可以运行在所有的Windows系统中。
一、UNIX/Linux下SSH2安装步骤
1.下载软件包,下载地址www.ssh.com,下载最新软件包SSH2,最好下载源程序软件包自己进行自行编译。
2.解压及安装:
# tar -zxvf ssh2-2.4.0.tar.gz
# cd ssh2-2.4.0
# ./configure
# make
#make install
安装完成。这一过程实际上将服务器软件包及客户端软件一起安装了,不必再次安装客户端软件包。
已编译好的二进制软件包以rpm格式存放在ftp://ftp.ssh.com/pub/ssh/rpm目录下。它是一个给非商业用户使用的软件包,软件包名称为:ssh-2.4.0-1.i386.rpm,其中包含了对X Window的支持,另一个不支持X Window的软件包为ssh- 2.4.0-1nox.i386.rpm,下载后可以直接安装。安装程序将SSH2软件包安装在/usr/local/bin及 /usr/local/sbin下。
二、Windows NT/2000/2003 Server上安装SSH
在NT及Windows 2000 Server环境下,可选择的服务器软件有:Vshell、ssh2-2.4.0.win-server。 Vshell是由Van Dyke提供的一个可以在Windows NT/2000环境下提供SSH2服务器的软件包,其下载地址如下: //www.vandyke.com/download/index.html。另一个运行在Windows环境下的SSH服务器是 SSHWinServer.exe,可以直接从ftp://ftp.ssh.com/pub/ssh目录下下载。
Windows环境下的安装十分简单,本文不再多介绍。
与UNIX不同,在Windows环境下,需要分别安装服务器及客户端软件包。运行在Windows环境下的客户端软件,也可以从以上两个站点下载得到,文件名分别为SecureCRT及SSHWin-2.4.0-pl2。
三、关于密钥的准备工作
A.服务器端产生用户的自己的加密密钥及对外公开使用的公钥。在UNIX环境下,产生密钥的方法如下:
keygen
要求用户输入一个长的认证字串,这个字串的功能同password相当,但是,它更长,一般是在20个字符以内。再次输入相同的字串以确认输入的正确,之后,系统产生一对密钥及公钥。将公钥复制到本地,以便客户端对服务器发送的信息进行解密用。当然,如果你不复制,在第一次登录时,服务器会将它的公钥自动推给客户机,以便客户机能对服务器提供的信息进行解密识别。
B.客户端产生用户的加密密钥及公钥。客户端产生自己的密钥及公钥的方法与服务器端相同。而Windows环境下的一些支持SSH的客户端软件都采用自己生成的方法,具体情况各不相同,但是可以肯定的是所有的支持SSH的客户端都可以而且必须产生。以sshWin2.4为例说明如下:
打开选单:Edit→Settings→Globe settings→User keys→Generate New keypairs,按照提示会自动产生新的密钥及公钥对。
最后,将客户机产生的公钥复制到服务端的主机上用户的目录中(在UNIX下应为/home/usrname/.ssh2目录中)。不同的版本的SSH对公钥及密钥的文件名有特定的要求,具体情况请阅读软件包中的安装说明。
4. SSH サーバーの起動
UNIX/Linux 環境では、サーバープログラムは /usr/local/sbin ディレクトリに配置されます。起動方法は次のとおりです。
# sshd
# ps x
SSHDが起動していることがわかります。システムを再起動するたびに SSHD を手動で開始したくない場合は、スクリプトを自分で作成して init.d ディレクトリに配置し、システムの起動後に SSHD サービスを自動的に開始することができます。または、行 /usr/local/sbin/sshd を rc.local に直接追加することもできます。 Windows NT/2000/ で SSH2 サーバーを起動するには、プログラム グループで「start SSH2 Server」を実行するだけです。
SSH の使用
クライアントは UNIX/Linux システムでは SSH であり、/usr/local/bin ディレクトリに保存されます。 SSH1、SSH2、scp などのクライアント ツールがあります。SSH を使用してリモート ホストにログインする方法は次のとおりです。
Host.ip.of.remote
Just Telnet を使用する場合と同様に、ユーザーは認証文字列を入力する必要がある点が異なります。認証文字列が認証に合格した場合、ユーザーは直接ログインに成功します。そうでない場合、ユーザーはシステム パスワードを入力する必要があります。パスワード認証が成功すると、ユーザーはシステムに正常にログインできるようになります。使用上の観点からは、Telnet と違いはありません。また、SSH クライアント ソフトウェアを使用すると、ファイルをアップロードする場合、以前のように別の FTP ウィンドウを開いて再度認証し、ファイルをアップロードする必要がありません。 SSH クライアントに付属の scp ツールを使用すると、ファイルをリモート サーバーに直接アップロードできます。使用法は次のとおりです。
Host1:dir/filename host2:/home/abc/filename
Windows システムでは、利用可能な SSH クライアントは次のとおりです。 SecurCRT、これは CRT サポート SSH バージョン (ダウンロード アドレス: //www.vandyke.com/)、これは SSH をサポートする優れたリモート端末です。SSH1 と SSH2 の両方をサポートします。ユーザーはサーバー側に応じて自由に選択し、対応する規格をサポートさせることができます。
別のオプションは、ssh.com によって提供されるクライアントです。ダウンロード アドレス: ftp://ftp.ssh.com/pub/ssh/SSHWin-2.4.0-pl2.exe、これは SSH2 の新しいバージョンですクライアント。
さらに、SSH をサポートする FTP クライアント ツールもあります。その中には、sshwin-2.4 には、2 つのホスト間で暗号化されたファイルを転送するために使用できる SSH Secure File Transfer Client があります。つまり、scpの機能です。 SecureCRT と連携して、SSH をサポートする対応する FTP ツールもあります。その名前は SecureFX で、www.vandyke.com/ からダウンロードして使用できます。
下の図は、SecureCRT ログイン サーバーの概略図です。
さまざまな理由により、一部の GUI クライアントは必ずしも SSH をサポートするとは限りません。上記のサーバーごとに、上記のツールを組み合わせて、自分に合ったものを見つけることができます。一般に、UNIX 上のクライアントは、さまざまなサーバーに対して最適なサポートを提供します。通常、サーバー ソフトウェアとクライアント ソフトウェアを選択するときは、非互換性の問題が発生しないように、同じソフトウェア ベンダーの製品を選択することが最善です。
追加する必要があるのは、SSH2 を使用したいが支払いたくない場合は、代わりのフリー ソフトウェアとして Openssh を使用するということです。Openssh は、GPL 契約に準拠し、SSH1 と SSH1 の両方をサポートするソフトウェア パッケージです。 SSH2 標準。もう 1 つの広く使用されている SSH パッケージ (www.openssh.com からダウンロードできます)。 Openssh の最新バージョンは Openssh-2.5.1 で、すべてのソース コードが提供されています。ただし、コンパイルする前にドキュメントを注意深く読む必要があります。 zlib と openssl という 2 つのソフトウェア パッケージは、コンパイル プロセス中に使用されます。ユーザーは、まずそれらをダウンロードしてインストールし、次に openssh をコンパイルする必要があります。特定のプロセスについては、ソフトウェア パッケージ内のインストール ファイルをお読みください。