注意:这里说的命令执行后返回的结果都是命令在远程机器上执行后的结果

1、ssh等效
原理:产生一对密钥,自己持有一个私钥,公钥给对方,需要一对才能解密

 ssh-keygen   --输入这个命令后,三次回车产生空密码key对
 ssh-keygen -t dsa  --可以这样使用dsa的加密方式
 ssh-keygen -t rsa --默认的加密方式
 # ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
/root/.ssh/id_rsa already exists.
Overwrite (y/n)? y
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
4d:52:a8:72:51:ad:e1:a9:54:a9:a9:25:f0:9b:1e:10 root@mail.cluster.com

# scp /root/.ssh/id_rsa.pub 192.168.1.12:/root/.ssh/authorized_keys--把公钥传给192.168.1.12的机器后,重命令名为authorized_keys

# ssh 192.168.1.12  --直接ssh不需要密码了
# ssh 192.168.1.12 ls /root     --可以直接执行192.168.1.12上的命令,并返回此命令在192.168.1.12上执行后的结果

 

 2、配置rsh服务
rsh是“remote shell”(远程 shell)的缩写。 该命令在指定的远程主机上启动一个shell并执行用户在rsh命令行中指定的命令。如果用户没有给出要执行的命令,rsh就用rlogin命令使用户登录到远程机上。

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也就终止了。

 

 

 # rpm -qa | grep rsh
 rsh-0.17-40.el5
 rsh-server-0.17-40.el5
 具体的开启方法,在192.168.1.12上
/etc/xinetd.d/rlogin文件中disable =yes的改为
disable =no
保存退出。
还有/etc/xinetd.d/rsh文件中disable =yes的改为
disable =no
保存退出。

然会重启一下rsh服务
# service xinetd restart

把/etc/securetty 文件加上
rsh
rlogin
ssh
三行。
 
在/root/.rhosts中添加允许访问的ip或主机名
# vi /root/.rhosts
www.hallen.com
192.168.1.13     

# lsof -i :514
COMMAND   PID USER   FD   TYPE DEVICE SIZE NODE NAME
xinetd  21676 root    8u  IPv4  45902       TCP *:shell (LISTEN)

在192.168.1.13上测试
列出远程系统上的文件,并把它们送到本系统中的标准输出。
# /usr/bin/rsh 192.168.1.12  ls /root/ > /root/hallen  //本地系统
 
引用一个重定向操作符。它变成Linux命令的一部分,包括命令的参数,文件名。命令ls产生一列文件名并把它们重定向到远程系统中的一个文件中。
# /usr/bin/rsh 192.168.1.12 ls /home/ '>' /root/shijun(远程系统)


# rsh 192.168.1.12  ls /root/ | grep an  //本地系统
# rsh 192.168.1.12  ls /root/ '|'  grep abc   //远程系统

文档整理人:石军    QQ:295568080   E-mail:hishijun@yeah.net 博客:http://hallen.blog.51cto.com
交流群:我们都是挨踢人 167125978