3.3 天涯若比邻

随着企业网络的不断扩展,网络管理人员经常需要对远程的服务器进行维护。为了满足这样的要求,出现了很多远程管理软件,如PCAnyWhere等。在Linux系统中默认就提供了多种方式,使管理员可以方便地远程管理Linux服务器,本章中主要介绍Linux所提供的几种比较常见的远程管理方式。

3.3.1 Telnet

Telnet协议是TCP/IP协议族中的一员,是Internet远程登录服务的标准协议。Telnet为用户提供了在本地计算机上完成远程主机工作的能力。在终端使用者的计算机上使用telnet程序连接到服务器,终端使用者可以在Telnet程序中输入命令,这些命令会在服务器上运行,就像直接在服务器的控制台上输入一样。要开始一个Telnet会话,必须输入用户名和密码来登录服务器。传统Telnet连接会话所传输的数据并未加密,这代表所输入及显示的资料,包括账号名称及密码等隐秘资料,可能会遭其他人窃听,因此有许多服务器会将Telnet服务关闭,改用更为安全的SSH。Microsoft Windows从Vista开始,Telnet用户端不再是预先安装,而要手动从程式集里启动才可以使用。在RHEL 5.x中也是一样,默认并没有安装Telnet服务,也就是说,其他客户无法通过telnet程序连接到RHEL 5.x。在RHEL 5.x中开户Telnet服务的具体操作步骤如下。

(1)安装Telnet服务,具体操作步骤如下。

● 挂载RHEL 5.x光盘。

        [root@srv ~]# mount /dev/cdrom /mnt

● 安装Telnet服务。

        [root@srv ~]# rpm -ivh /mnt/Server/telnet-server-0.17-39.el5.i386.rpm

(2)使用“vim/etc/xinetd.d/telnet”命令编辑Telnet服务配置文件修改如下内容。

        service telnet
        {
                flags                    = REUSE
                socket_type              = stream
              wait                     = no
              user                     = root
              server                   = /usr/sbin/in.telnetd
              log_on_failure           += USERID
              disable                  = NO
        }

(3)重新启动xinetd服务。

        [root@srv ~]# service xinetd restart

(4)完成后其他Linux或Windows客户端就可以通过telnet命令连接到RHEL 5.x的服务器。

提示

在Windows Vista之后的Windows默认并没有提供telnet用于连接到远程的Telnet服务器,如果需要使用telnet命令必须在“打开或关闭Windows功能”中勾选“Telnet客户端”,如图3-40所示。

图3-40 Telnet客户端

Windows、Linux作为客户端使用telnet命令时并没有什么区别,下面是通过一台Linux客户连接到IP地址为192.168.159.12并开启了Telnet服务的RHEL 5.x服务器的方法。

● 连接到192.168.159.12。

        [root@srv ~]# telnet 192.168.159.12
        Trying 192.168.159.12...
        Connected to 192.168.159.12 (192.168.159.12).
        Escape character is '^]'.
        Red Hat Enterprise Linux Server release 5.4 (Tikanga)
        Kernel 2.6.18-164.el5 on an i686

● 输入Telnet服务器上的合法的用户。

        login: charles

● 输入Telnet服务器上的合法的密码。

        Password:

● 成功连接到192.168.159.12。

        [charles@srv1~]$

提示

在RHEL 5.x中Telnet服务默认不允许客户端使用root用户登录,如果希望root用户也可以修改/etc/pam.d/login内容如下。

        #%PAM-1.0
        #auth       required       pam_securetty.so  #注释或删除该行。
        auth        required       pam_stack.so service=system-auth
        auth        required       pam_nologin.so
        account     required       pam_stack.so service=system-auth
        password    required       pam_stack.so service=system-auth
        session     required       pam_stack.so service=system-auth
        session     optional       pam_console.so

3.3.2 SSH

SSH是Secure Shell的缩写,由IETF的网络工作小组所制定,SSH为建立在应用层和传输层基础上的安全协议。传统的网络服务,如FTP、POP、Telnet,其本质上都是不安全的,因为这些网络服务在网络上用明文传送数据、用户账号及密码,很容易受到中间人(man-in-the-middle)攻击方式的攻击,通过SSH可以对所有传输的数据进行加密,也能够防止DNS欺骗和IP欺骗。SSH的另一项优点为其传输的数据是经过压缩的,所以可以加快传输的速度。SSH有很多功能,SSH既可以代替Telnet,又可以为FTP、POP提供一个安全的通道。Red Hat推荐用户使用安全的SSH来远程登录服务器,而不要使用telnet,因为telnet连接服务器时,密码是以明文方式传输。

在RHEL 5.x中SSH服务默认就已经安装并已启动,客户端可以连接到RHEL 5.x的SSH服务进行远程管理,下面介绍通过Linux及Windows客户端通过SSH连接到RHEL 5.x服务器的方法。

1.Linux客户端

在Linux客户访问SSH服务器主要通过以下几个命令完成。

(1)ssh命令是Linux平台连接到SSH服务器最常用的命令,ssh基本语法如下。

        ssh [-CfLRv] [用户名@] SSH服务器 [命令]

常用指数:

常用选项:

● SSH服务器:指定需要连接的SSH服务器,可以使用FQDN或IP地址。

● 用户名@:指定连接SSH服务器的用户名,不指定用户名时默认以root用户连接。

● 命令:使用ssh命令可以连接到SSH服务器,但有时只需要在SSH服务器上执行一个命令时,可直接通过此参数指定需要执行的命令。

● -C:启用压缩功能。

● -f:在询问密码之后且在执行[命令]之前,将ssh转到后台运行。

● -L:将本地系统中的某个端口转发到远程系统。

● -R:将远程系统上的某个端口转发到本地客户端。

● -v:显示与连接和传送有关的调试信息。如果命令运行不太正常的话,这个选项就会非常有用。

下面在如图3-41所示的网络拓扑中,在IP地址为192.168.159.100的客户端上通过ssh命令管理IP地址为192.168.159.11的RHEL 5.x服务器,具体操作步骤如下。

图3-41 ssh

● 通过ssh命令连接远程计算机,未输入用户名则默认使用root用户。

        [root@srv ~]# ssh 192.168.159.11

● 如果是第一次连接到远程计算机,由于本地主机的用户需要生成连接远程主机的RSA公钥,所以出现警告提示此处输入yes,OpenSSH会将这台计算机识别标记加入#~/.ssh/know_hosts文件中,第二次连接时就不会出现警告。

        The authenticity of host '192.168.159.11 (192.168.159.11)' can't be established.
        RSA key fingerprint is 1b:e5:af:97:e1:97:d4:ce:06:24:37:57:d2:88:b0:a8.
        Are you sure you want to continue connecting (yes/no)? yes
        Warning: Permanently added '192.168.159.11' (RSA) to the list of known hosts.

● 输入IP地址为192.168.159.11的RHEL 5.x服务器root用户密码。

        root@192.168.159.11's password:
        Last login: Sat Nov  7 11:34:062009

● 已经成功连接到IP地址为192.168.159.11的RHEL 5.x服务器,之后所有的命令将

在该RHEL 5.x服务器上执行。

        [root@ssh ~]# ifconfig
        eth0     Link encap:Ethernet  HWaddr 00:0C:29:D9:53:C0
                inet addr:192.168.159.11  Bcast:192.168.159.255  Mask:255.255.255.0
                inet6 addr: fe80::20c:29ff:fed9:53c0/64 Scope:Link
                UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
                RX packets:36 errors:0 dropped:0 overruns:0 frame:0
                TX packets:68 errors:0 dropped:0 overruns:0 carrier:0
                collisions:0 txqueuelen:1000
                RX bytes:4575 (4.4 KiB)  TX bytes:11310 (11.0 KiB)
                Interrupt:59 Base address:0x2024
        lo       Link encap:Local Loopback
                inet addr:127.0.0.1  Mask:255.0.0.0
                inet6 addr: ::1/128 Scope:Host
                UP LOOPBACK RUNNING  MTU:16436  Metric:1
                RX packets:1670 errors:0 dropped:0 overruns:0 frame:0
                TX packets:1670 errors:0 dropped:0 overruns:0 carrier:0
                collisions:0 txqueuelen:0
                RX bytes:4129904 (3.9 MiB)  TX bytes:4129904 (3.9 MiB)

● 退出对IP地址为192.168.159.11的RHEL 5.x服务器的远程连接。

        [root@ssh ~]# exit
        Connection to 192.168.159.11 closed.

● 在IP地址为192.168.159.11的RHEL 5.x服务器上执行hostname命令。

        [root@srv ~]# ssh 192.168.159.11 hostname
        root@192.168.159.11's password:
        ssh.example.zqin

(2)scp命令可以使用SSH的方式在远程主机和本地主机之间复制文件或目录,scp基本语法如下。

        scp [-Cpqrv] [[用户名@]复制源主机:]复制源文件[[用户名@]复制目标主机:][复制目标文件]

常用指数:

常用选项:

● 用户名@:指定连接SSH服务器的用户名,不指定用户名时默认以root用户连接。

● 命令:使用ssh命令可以连接到SSH服务器,但有时只需要在SSH服务器上执行一个命令时,可直接通过此参数指定需要执行的命令。

● -C:启用压缩功能。

● -p:保留原文件的修改时间、访问时间及模式。

● -q:不要显示复制进度信息。

● -r:递归复制。

● -v:显示与连接和传送有关的调试信息。如果命令运行不太正常的话,这个选项就会非常有用。

在scp命令中“复制源主机”和“复制目标主机”为两个系统名称,分别表示文件复制操作的源和目的地,可以使用FQDN或IP地址。当未指定时,默认为本地主机。用户名都默认为本地主机上正在输入该命令的用户,可以用“用户名@”来指定不同的用户。如果没有指定复制目标文件,那么scp将把文件复制到指定目标主机用户的家目录。

下面在如图3-41所示的网络拓扑中,在IP地址为192.168.159.100的客户端上通过scp命令将IP地址为192.168.159.11的RHEL 5.x服务器上“/test”目录的所有内容复制到本地“/tbak”目录,具体操作步骤如下。

● 使用scp命令进行远程复制。

        [root@srv ~]# scp -pr 192.168.159.11:/test /tbak/

● 输入IP地址为192.168.159.11的RHEL 5.x服务器root用户密码。

        root@192.168.159.11's password:
        jack.xlsx                                100%  120KB 120.0KB/s   00:00
        house.docx                               100%   60KB  60.0KB/s   00:00
        oliva.pptx                               100%  300KB 300.0KB/s   00:00

2.Windows客户端

一般在Windows平台可以使用PuTTY(PuTTY官方网站:http://www.chiark.greenend.org.uk/~sgtatham/putty/)连接到SSH服务器。PuTTY是一个开源软件,主要由Simon Tatham维护,使用MIT licence。PuTTY可以作为Telnet、SSH等的客户端连接软件,较早的版本仅支持Windows平台,在新的版本中开始支持各类UNIX平台。除了官方版本外,有许多非官方的团体或个人将PuTTY移植到其他平台上,如使用Symbian的智能手机。PuTTY的Windows版本是一个绿色软件,下载(下载地址:http://the.earth.li/~sgtatham/putty/latest/x86/putty.exe)后不需要安装即可使用。

打开PuTTY后输入需要连接的远程主机的IP地址或FQDN后,单击“Open”按钮(如图3-42所示)。如果是经常访问的服务器可以在“Saved Sessions”为当前服务器起个名称文件以后使用。

图3-42 PuTTY连接服务器

由于本地主机的用户需要生成连接远程主机的RSA公钥,所以在第一次连接远程主机时会出现警告提示此处选择“是”按钮,如图3-43所示。在输入用户名及密码后即可使用SSH登录到远程主机,如图3-44所示。

图3-43 PuTTY警告提示

图3-44 PuTTY连接成功

3.3.3 RDP

在Windows中可以通过“远程桌面”功能连接到远程的Windows计算机进行管理。在微软的官方网站也可以下载基于Mac OS的“远程桌面”客户端,使得Mac OS可以连接到远程的Windows,但微软并没有提供基于Linux系统的“远程桌面”客户端。不过开源软件rdesktop(rdesktop官方网站:http://www.rdesktop.org/)使得Linux可以通过“远程桌面”连接到Windows进行管理。在Linux中配置rdesktop的具体步骤如下。

(1)安装rdesktop及相关软件包。

● 将RHEL 5.x光盘挂载到/mnt目录。

        [root@srv ~]# mount /dev/cdrom /mnt

● 安装相关软件包。

        [root@srv ~]# rpm -ivh /mnt/Server/libao-0.8.6-7.i386.rpm

● 下载并安装rdesktop及相关软件包。

        [root@srv ~]# wget
        ftp://rpmfind.net/linux/dag/redhat/el5/en/i386/dag/RPMS/libsamplerate-0.1.7-1.el5.rf.i386.rpm
        [root@srv ~]# wget
        ftp://rpmfind.net/linux/dag/redhat/el5/en/i386/dag/RPMS/libsndfile-1.0.17-1.el5.rf.i386.rpm
        [root@srv ~]# wget
        ftp://rpmfind.net/linux/dag/redhat/el5/en/i386/dag/RPMS/rdesktop-1.6.0-0.1.el5.rf.i386.rpm
        [root@srv ~]# rpm -ivh *.rpm

(2)通过如下命令可以连接到IP地址为192.168.159.17的Windows计算机,在弹出窗口中输入Windows的用户名及密码即可远程管理Windows,如图3-45所示。

        [root@srv ~]# rdesktop 192.168.159.17

图3-45 rdesktop