rsh
是一种远程登录的工具,由服务器及客户端程序构成,它为用户提供了在本地计算机上完成远程主机工作的能力。
rsh
命令是"remote shell"
(远程 shell
)。该命令在指定的远程主机上启动一个shell
并执行用户在rsh
命令行中指定的命令。如果用户没有给出要执行的命令,rsh
就用rlogin
命令使用户登录到远程机上。
目前rsh
很少被应用到一般的服务器上,尤其是对Internet
开放的主机,这是因为rsh
的危险性很高。它不但是明文传输,而且一旦设置不当,可能会让所有人都能够使用rsh
来登录远程主机。不过,rsh
却是操作群集计算机(Cluster
)里最常见的服务之一。
所谓的群集计算机,简单地说就是将很多台主机通过网络连接在一起,以其中一台主机作为主控计算机,称为Master
,其他主机负责来自Master
的请求,称为 Slave
,所有的计算机工作都是由Master
掌控的,Slave
负责运行部分。在这种情况下,Slave
接受Master
命令的最主要途径就是通过rsh
。
Linux
系统上提供在线安装软件的功能,前提是确保电脑可以连接上互联网,在线安装软件非常方便,用户只需要对应的软件名称,不需要考虑该软件的依赖情况,在线安装会自动的搜索该软件的所有依赖包,然后自动完成安装。
在线安装是指不需要用户亲自下对应软件的包,但是需要对应系统能够访问互联网,不同的Linux
系统使用不同的工具进行在线安装软件,常见的在线安装软件的工具如下所示:
Ubuntu/Debian系统使用apt-get进行在线安装软件;
Redhat/CentOS系统使用yum进行在线安装软件;
本实验环境使用的系统是Ubuntu
,所以使用apt-get
工具来在线安装软件,具体步骤如下所示:
更新软件源:sudo apt-get update
安装Rsh服务器:sudo apt-get install rsh-server
如果安装成功则会在/etc/init.d
目录下生成一个openbsd-inetd
文件:
注意:如果当前用户是root
,则执行以上安装命令时不需要加sudo
。
本实验环境使用的系统是Ubuntu
,所以使用apt-get
工具来在线安装软件,具体步骤如下所示:
更新软件源:sudo apt-get update安装
Rsh客户端:sudo apt-get install rsh-client
如果安装成功,系统中就会有rsh
命令,查看是否存在rsh
命令:
注意:只需要更新一次软件源即可,不需要每次安装软件前进行源更新操作。
当安装成功Rsh
软件后,系统默认Rsh
服务是关闭的。
本实验环境使用的系统是Ubuntu
,当使用apt-get
在线安装软件后,通常会在/etc/init.d/
目录下生成一个启动该服务软件的脚本,例如使用apt-get
安装Rsh
服务器软件后,可以看到在/etc/init.d/
目录下生成一个名为openbsd-inetd
的脚本文件,该脚本可以用来控制Rsh
服务的启动与关闭等信息。
**PS:**这里的启动脚本和telnet
的启动方式一样,因为Linux
都使用openbsd-inetd
来管理这些常见的服务。
[Rsh
服务脚本文件]
Linux
系统中使用service
命令来控制系统服务,它可以启动、停止、重新启动和关闭系统服务,还可以显示所有系统服务的当前状态。
service`命令的使用格式:`service 服务名 控制命令
/etc/init.d
目录下的脚本文件名;常见的控制命令:
注意并不是所有的服务都支持以上4
种控制命令,不同的服务提供不同的控制命令,大多数服务都支持以上4
种常用的控制命令。
当我们成功安装Rsh
服务器后,接下来,我们使用service
命令来管理Rsh
服务。
我们将在以下案例演示中分别介绍如何启动、关闭、重新启动Rsh
服务,以及查看 Rsh 服务状态。
查看Rsh
服务状态:
查看Rsh
服务状态,可以使用如下命令:
sudo service openbsd-inetd status
可以看到当前没有发现inetd
进程,也就是Rsh
服务是没有启动的。
开启Rsh
服务:
开启Rsh
服务并且查看是否开启成功,可以使用如下命令:
sudo service openbsd-inetd startsudo service openbsd-inetd status
可以看到inetd
服务处于running
状态,也就是Rsh
服务是开启的。
重启Rsh
服务:
重启Rsh
服务并且查看是否重启成功,可以使用如下命令:
sudo service openbsd-inetd restartsudo service openbsd-inetd status
关闭Rsh
服务:
关闭Rsh
服务并且查看是否关闭成功,可以使用如下命令:
sudo service openbsd-inetd stopsudo service openbsd-inetd status
可以看到当前没有发现inetd
进程,也就是Rsh
服务是没有启动的。
注意:如果当前用户是root
,则执行以上命令时不需要加sudo
。
openbsd-inetd
是Linux
系统的一个因特网超级服务器,之所以称为超级服务器,是因为它能够管理多种网络服务,典型的有FTP
、Telnet
和Rsh
等。 Linux
系统还有一个与之提供类似功能的管理器叫xinetd
,本实训使用openbsd-inetd
来管理Rsh
服务器,这里主要讲解openbsd-inetd
的原理。
openbsd-inetd
的配置文件是/etc/inetd.conf
,当成功安装Rsh
服务器后,就可以在/etc/inetd.conf
配置文件中看到一条关于Rsh
的配置信息,见下图:
正是因为有以上的一条配置信息,才可以使用openbsd-inetd
来管理Rsh
服务。
当成功的启动了Rsh
服务后,就可以使用Rsh
客户端进行连接Rsh
服务所在的电脑进行远程操作,Rsh
的客户端程序叫rsh
。
rsh` 命令格式:`rsh 选项 参数
常见选项:
-d
:使用Socket层级的排错功能。
-n
:把输入的指令号向代号为/dev/null的特殊外围设备。
-l<用户名称>
:指定要登入远端主机的用户名称;
参数:
远程主机:指定要登录进行管理的远程主机;
命令:指定执行的命令;
实例1
:
使用rsh
登录本机,登录用户为testUser
,具体使用如下步骤:
rsh -l testUser localhost
此时,我们只需要输入远程主机的用户名密码即可登录成功,此时用户即可进行一系列操作。
实例2
:
使用rsh
登录本机,登录用户为testUser
,查看当前目录下文件,然后退出,具体使用如下步骤:
rsh -l testUser localhostlsexit
使用exit
命令去断开连接。