当前位置: 首页 > 工具软件 > rsh > 使用案例 >

Linux下rsh服务配置

慕通
2023-12-01

1. rsh和ssh的区别
rsh和ssh它俩之间的区别就是:ssh是使用密钥加密从而实现无密码登录的,具体来说就是在A主机生成一对密钥对,即公钥和私钥,我把公钥传递给B,然后等A链接B的时候,B会随机生成一个数来使用A提供的公钥进行加密,并将加密后的数字发送给A,A采用自己的私钥解密,并将解密后的数字再传送给B,等B校验A传来的数字和刚开始生成的数字相符时,就允许A登录,这就是ssh无密码登录的原理。而rsh是使用明文传输,没有密钥的机制,总的来说就是他们的安全级别不够。Ssh要比rsh更安全一些。

 Ssh配置无密码登录,请参考: google查找

2. Rsh设置主机之间无密码登录

1. A与B均安装需要的软件:

   rsh.x86_64

   rsh-server.x86_64

   Yum安装:yum -y install rsh*          # 这一步A、B均需要
  1. 检查是否安装成功

    rpm -qa | grep rsh

  2. 启动并查看rsh服务

    service xinetd restart

    netstat -tupln | grep xinetd # 出现如下监听端口说明启动成功

[root@RedHat01 security]# netstat -tunpl| grep xinetd

tcp 0 0 :::512 ::? LISTEN 3593/xinetd

tcp 0 0 :::513 ::? LISTEN 3593/xinetd

tcp 0 0 :::514 ::? LISTEN 3593/xinetd

  1. 配置/etc/hosts文件

将A和B的IP地址与主机名对应的写入到该文件,是为了DNS能解析成功:

[root@RedHat01 security]# vi /etc/hosts

127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4

192.168.19.111 RedHat01 # A

192.168.19.112 RedHat02 # B

查看一下是否可以解析:ping RedHat01

  1. 配置/etc/hosts.equiv (若没有该文件请自行建立)

    这一步主要是将对方的主机名写进去。

    A机器/etc/hosts.equiv的内容为:RedHat02

    B机器/etc/hosts.equiv的内容为:RedHat01

    注:这里是允许对方机器上的所有用户,如果只允许root就写 RedHat02 root

  2. 配置/root/.rhosts文件(自行建立)

    和上一步一样,把彼此的主机名写进去

    A机器/root/.rhosts的内容:RedHat02

    B机器/root/.rhosts的内容:RedHat01

  3. 修改/etc/xinetd.d/rsh|rlogin|rexec文件,将 disable = yes 该为 disable = no

  4. 修改/etc/securetty文件,添加:rsh rexec rlogin

    也可以执行:  echo "rsh" >> /etc/securetty ; 
    
                  echo "rexec" >> /etc/securetty ;
    
                  echo "rlogin" >> /etc/securetty ;
    

注:这一步非常重要,如果想要root登录不需要密码,必须要在这个文件里面输入上面的内容。至于这个文件的作用会在下面讲解。

  1. 关闭SELINUX:

vim /etc/selinux/config 修改令SELINUX=disabled

**死活不能免密登录,原来这里也得设置**
  1. 重启服务

service xinetd restart

  1. 测试:rsh RedHat02

no-root(普通用户配置)

普通用户的配置和上面差不多,有几点区别指出:

上面的第6步:

需要在该用户的目录下创建.rhosts文件,输入的内容是一样的。

例如用户rshtest 就需要在 /home/rshtest/ 下创建.rhosts文件

上面的第8步:

作为普通用户的配置,将这一步省略也可以成功。亲自实践。

注意:

作为普通用户在AB之间互相登录,AB上普通用户的用户名必须是相同的,我自己在做实验的时候曾经因为用户名不同,费了好长的时间才找到原因。即:

A机器上有普通用户:mytest 那么响应的

B机器上也要有普通用户:mytest
用rsh登录到另一台主机,他是在另一台主机上以相同用户的身份来执行操作,这也就是为什么必须有相同的用户名的原因了。


补充:

我们主要来说一下:/etc/securetty文件的作用:

/etc/securetty文件规定root用户可以从哪个tty设备登录。登录程序(通常是“/bin/login”)需要读取“/etc/securetty”文件。它的格式是:列出来的tty设备都是允许登录的,注释掉或是在这个文件中不存在的都是不允许root登录的。

把这个文件改名、或注释掉里面的文件,不会影响ssh的应用,因为ssh远程登录使用的是PTS,这个文件可以阻止telnet,rsh , 通过root登录。

 类似资料: