Rsh 是远程外壳(remote shell) 的缩写(外壳是操作系统的一种命令接口)。运行于远程计算机上的rshd 后台程序,接受rsh 命令,验证用户名和主机名信息,并执行该命令。当用户不愿或不需要与远程计算机建立远程会话时,可以使用rsh 工具执行输入的命令。Rsh 工具允许用户在远程计算机上执行单条命令,而无需在该远程计算机上进行登录。
rsh简介
rsh 的格式
rsh命令的一般格式是:
rsh [-Kdnx] [-k realm] [-l username] host [command]
一般常用的格式
rsh host [command ]
command可以是从shell提示符下键入的任何Linux命令。
各选项含义
rsh命令中各选项的含义如下
-K 关闭所有的Kerbero确认。该选项只在与使用Kerbero确认的
主机连接时才使用。
-d 打开与远程主机进行通信的TCP sockets的socket调试。要了解更多的信息,请查阅setsockopt的联机帮助。
-k 请求rsh获得在指定区域内的远程主机的Kerberos许可,而不是获得由krb_relmofhost(3)确定的远程主机区域内的远程主机的Kerberos许可。
-l 缺省情况下,远程用户名与本地用户名相同。本选项允许指定远程用户名,如果指定了远程用户名,则使用Kerberos 确认,与在
rlogin命令中一样。
-n 重定向来自特殊设备/dev/null的输入。
-x 为传送的所有数据打开DES加密。这会影响响应时间和CPU利用率,但是可以提高安全性。
Linux把标准输入放入rsh命令中,并把它拷贝到要远程执行的命令的标准输入中。它把远程命令的标准输出拷贝到rsh的标准输出中。它还把远程标准错误拷贝到本地标准错误文件中。任何退出、中止和中断信号都被送到远程命令中。当远程命令终止了,rsh也就终止了。
rsh配置过程
安装前准备
主机ahost ip 192.168.200.123
配置其/etc/hosts 文件
配置其/etc/sysconfig/network
主机bhost ip 192.168.200.200
配置其/etc/hosts文件
配置其/etc/sysconfig/network
安装rsh包
确认机器ahost是否安装rsh包
[root@ahost]# rpm -aq |grep rsh
rsh-0.17-14
rsh-server-0.17-14
如果没有安装以上两个包,请找到相关软件安装(如果是LINUX,可以从安装碟中找到)
安装包:
rpm -ivh rsh-0.17-5 (linux操作系统)
rpm -ivh rsh-server-0.17-5 (linux 操作系统)
启动rsh 服务
确认是否启动rsh 服务
方法一:
使用命令setup,查看service是否将[*] rsh 加上*,如果加上*表示可以启动。
/etc/rc.d/init.d/xinetd restart 或者service xinetd restart
方法二:
rsh 属于xinetd服务,可以直接修改/etc/xinetd.d/rsh
脚本文件。
service shell
{
disable = no
socket_type = stream
wait = no
user = root
log_on_success += USERID
log_on_failure += USERID
server = /usr/sbin/in.rshd
}
当然方法很多,目的就是使用rsh服务能启动。
/etc/rc.d/init.d/xinetd restart
检查是否启动: rsh server 监听和TCP 是514。
[root@mg04 root]# netstat -an |grep 514
tcp 0 0 0.0.0.0:514 0.0.0.0:* LISTEN
如果能看到514在监听说明服务器已经启动。
配置
配置rsh server
修改/etc/securetty文件: echo rsh >>/etc/securetty
或者 echo “rsh”>>/etc/securetty都可以
如果打算用root作为rsh用户的话:
先用root登录到机器ahost中进行以下操作:
cd ~/
主要作用是使得bhost来的主机可以不用输入用户名和密码就可以登录
重启rsh server.
测试注意问题
登录到bhost机器进行测试: rsh -l root ahost ps -ef
看是否能看到结果。如果看到
[root@mg04 etc]# rsh -l root ahost ps -ef
Permission denied.
这是由于权权限问题,一般是由于.rhosts没有配置正确。.rhosts一般位于
rsh server服务器相对应账号目录下比如root(与.bash_profile在同一目录)
rsh在执行命令有时会找不到。rsh 在调用命令是最好使用绝对路径。默认搜索路径为:
[root@mg04 etc]# rsh -l root 192.168.200.123 env |grep PATH
PATH=/usr/bin:/bin
rh8.0下rcp的用法设置
只对root用户生效
1、在双方root用户根目录下建立.rhosts文件,并将双方的hostname加进去.在此之前应在双方的/etc/hosts文件中加入对方的IP和hostname
2、把rsh服务启动起来,redhat默认是不启动的。方法:用执行ntsysv命令,在rsh选项前用空格键选中,确定退出。然后执行:service xinetd restart即可。
3、到/etc/pam.d/目录下,把rsh文件中的auth required /lib/security/pam_securetty .so一行用“#”封掉即可
命令行参数
rsh 的命令
在运行 RSH 服务的远程计算机上运行命令。Windows XP 和 Windows 2000 不提供 RSH 服务。Windows 2000 Server Resource Kit 提供名为 Rshsvc.exe 的 RSH 服务。使用不带参数的 rsh 显示帮助。
语法
rsh [Host] [-l UserName] [-n] [Command]
参数
Host
指定运行 command 的远程计算机。
-l UserName
指定远程计算机上使用的用户名。在省略情况下,使用当前登录用户的名称。
-n
将 rsh 的输入重定向到 NULL 设备。这防止本地计算机命令结果的显示。
Command
指定要运行的命令。
/?
在命令提示符显示帮助。
rsh 的注释
注释
标准操作
rsh 命令将标准输入复制到远程 command,将远程 command 的标准输出复制到其标准输出,将远程 command 的标准错误复制到其标准错误。Rsh 通常在远程命令终止时终止。
使用重定向符号
rsh othercomputer cat remotefile >> localfile
以下命令将远程文件 Remotefile 附加到远程文件 otherremotefile 中:
使用 rsh
在使用已登录到某个域并且运行 Windows XP Professional 的计算机时,该域的主域控制器必须可用于确认用户名或 rsh 命令失败。
.rhosts 文件
.rhosts 文件通常许可 UNIX 系统的网络访问权限。.rhosts 文件列出可以访问远程计算机的计算机名及关联的登录名。在正确配置了 .rhosts 文件的远程计算机上运行 rcp、rexec 或 rsh 命令时,您不必提供远程计算机的登录和密码信息。
.rhosts 文件是一个文本文件,该文件中每一行为一个条目,条目由本地计算机名、本地用户名和有关该条目的所有注释组成。每个条目均由制表符或空格分开,注释用符号 (#) 打头。例如:
host7 #This computer is in room 31A
.rhosts 文件必须在远程计算机的用户主目录中。有关远程计算机 .rhosts 文件特定执行的详细信息,请参阅远程系统的文档。
只有当网际协议 (TCP/IP) 协议在 网络连接中安装为网络适配器属性的组件时,该命令才可用。
范例
要以名称 admin1 在远程计算机 vax1 上执行 telcon 命令,请键入:
rsh vax1 -l admin1 telcon
Tftp
向运行平凡文件传输协议 (TFTP) 服务或 daemon 的远程计算机(尤其是运行 UNIX 的计算机)传输文件或从运行平凡文件传输协议 (TFTP) 服务或 daemon 的远程计算机(尤其是运行 UNIX 的计算机)传输文件。
语法
tftp [-i] [Host] [{get | put}] [Source] [Destination]
参数
-i
指定二进制图像传送模式(也称为八进制模式)。在二进制图像模式下,文件以一个字节为单位进行传输。在传送二进制文件时使用该模式。如果省略了 -i,文件将以 ASCII 模式传送。这是默认的传送模式。该模式将行尾 (EOL) 字符转换为指定计算机的适当格式。传送文本文件时使用该模式。如果文件传送成功,将显示数据传输率。
Host
指定本地或远程计算机。
put
将本地计算机上的 Destination 文件传送到远程计算机上的 Source 文件。因为 TFTP 协议不支持用户身份验证,所以用户必须登录到远程计算机,同时文件在远程计算机上必须可写。
get
将远程计算机上的 Destination 文件传送到本地计算机上的 Source 文件。
Source
指定要传送的文件。
Destination
指定将文件传送到的位置。如果省略了 Destination,将假定它与 Source 同名。
/?
在命令提示符显示帮助。
注释
使用 get 参数
如果将本地计算机上的文件 FileTwo 传送到远程计算机上的文件 FileOne,则指定 put。如果将远程计算机上的文件 FileTwo 传送到远程计算机上的文件 FileOne,则指定 get。
Windows XP 或 Windows 2000 不提供一般用途的 TFTP 服务器。Windows 2000 提供的 TFTP 服务器服务只为 Windows XP 和 Windows 2000 客户端计算机提供远程引导功能。
只有当网际协议 (TCP/IP) 协议在 网络连接中安装为网络适配器属性的组件时,该命令才可用。
范例
要从本地计算机将文件 Users.txt 传送到远程计算机 vax1 上的 Users19.txt,请键入:
tftp vax1 put users.txt users19.txt
化学名称
硫醇(RSH)