- Linux从初学到精通
- 张勤 鲜学丰等编著
- 126字
- 2020-08-27 03:01:38
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