1. rsh和ssh的区别
rsh和ssh它俩之间的区别就是:ssh是使用密钥加密从而实现无密码登录的,具体来说就是在A主机生成一对密钥对,即公钥和私钥,我把公钥传递给B,然后等A链接B的时候,B会随机生成一个数来使用A提供的公钥进行加密,并将加密后的数字发送给A,A采用自己的私钥解密,并将解密后的数字再传送给B,等B校验A传来的数字和刚开始生成的数字相符时,就允许A登录,这就是ssh无密码登录的原理。而rsh是使用明文传输,没有密钥的机制,总的来说就是他们的安全级别不够。Ssh要比rsh更安全一些。
Ssh配置无密码登录,请参考: google查找
1. A与B均安装需要的软件:
rsh.x86_64
rsh-server.x86_64
Yum安装:yum -y install rsh* # 这一步A、B均需要
检查是否安装成功
rpm -qa | grep rsh
启动并查看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
将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
配置/etc/hosts.equiv (若没有该文件请自行建立)
这一步主要是将对方的主机名写进去。
A机器/etc/hosts.equiv的内容为:RedHat02
B机器/etc/hosts.equiv的内容为:RedHat01
注:这里是允许对方机器上的所有用户,如果只允许root就写 RedHat02 root
配置/root/.rhosts文件(自行建立)
和上一步一样,把彼此的主机名写进去
A机器/root/.rhosts的内容:RedHat02
B机器/root/.rhosts的内容:RedHat01
修改/etc/xinetd.d/rsh|rlogin|rexec文件,将 disable = yes 该为 disable = no
修改/etc/securetty文件,添加:rsh rexec rlogin
也可以执行: echo "rsh" >> /etc/securetty ;
echo "rexec" >> /etc/securetty ;
echo "rlogin" >> /etc/securetty ;
注:这一步非常重要,如果想要root登录不需要密码,必须要在这个文件里面输入上面的内容。至于这个文件的作用会在下面讲解。
vim /etc/selinux/config 修改令SELINUX=disabled
**死活不能免密登录,原来这里也得设置**
service xinetd restart
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登录。