Centos7.5 配置集群rsh服务
安装rsh服务
yum install -y rsh rsh-server
yum install -y xinetd
在/etc/xinetd.d/下添加rsh,rlogin,rexec文件(如果没有,则创建)
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
}
rlogin
service login {
disable = no
socket_type = stream
wait = no
user = root
log_on_success += USERID
log_on_failure += USERID
server = /usr/sbin/in.rlogind
}
rexec
service exec {
disable = no
socket_type = stream
wait = no
user = root
log_on_success += USERID
log_on_failure += USERID
server = /usr/sbin/in.rexecd
}
在/etc/securett文件下添加rsh,rlogin,rexec
echo "rsh" >> /etc/securetty
echo "rlogin" >> /etc/securetty
echo "rexec" >> /etc/securetty
在/etc/hosts.equiv下添加各个节点名称(如果没有,则创建)
[ifactory2@t60 xinetd.d]$ cat ../hosts.equiv
t60
t72
t76
[ifactory2@t60 xinetd.d]$
root用户需要在/root/下创建.rhosts文件,文件内容与/etc/hosts.equiv相同
启动服务
systemctl restart rsh.socket
systemctl restart rlogin.socket
systemctl restart rexec.socket
systemctl enable rsh.socket
systemctl enable rlogin.socket
systemctl enable rexec.socket
启动xinetd
systemctl restart xinetd
- 其他节点和该节点配置相同。
附:/etc/hosts.equiv和/$HOME/.rhosts文件的不同之处
首先这两个文件都是和主机间的信任关系相关的,也就是允许另外一台机器上的用户不用输密码就可以rlogin到本机。但是,这两个文件之间的区别在哪里呢? 总结一下:
- 首先这两个文件里面的有效格式是一样的,也就是都可以是下面的格式
主机名
主机名 用户名
- 首先明确如果有远程主机想rlogin到本机,本机都要做什么
1)rlogind检查本机/etc/passwd中是否有远程的用户名,没有则拒绝访问
2)如果本机/etc/passwd中有远程的用户名,并且该用户名不是root,则先检查/etc/hosts.equiv,看看里面是否存在远程主机名,如果存在,则允许访问。 如果是root,则跳过对etc/hosts.equiv的检查,只检查“~home/.rhosts”。
3)/etc/hosts.equiv中只有远程主机名的话,表示允许远程主机上的所有非root用户可以登录本地主机,并且不需要密码 /etc/hosts.equiv 文件中如果加入了一台远程主机和一个用户,在远程主机上的那个用户(非root用户)就可以用rlogin登录本地机上的所有非root账号,而且不需要密码。
4)HOME/.rhosts文件中如果是远程主机名+用户名的话,则远程主机上对应的那些用户都可以登录过来到本地主机,但是在本地主机上显示的用户权限是对应$HOME的那个本地用户