注意,在早期linux里面使用xinetd来管理这些工具,但是新的linux版本不再使用xinetd了:
$ service xinetd status
Redirecting to /bin/systemctl status xinetd.service
Unit xinetd.service could not be found.
会发现, xinetd服务都不存在了。
安装和配置rsh/rexec涉及两台机器,1:远程rsh/rexec服务器,2:本地rsh/rexec客户机;远程服务器需要安装和启动rsh/rexec服务端程序,启动服务监听端口,例如rsh使用端口514, rlogin使用端口513,rexec使用端口512,本地客户端需要安装rsh/rexec客户端程序。
服务器端安装
- 安装rsh, rsh-server
$ sudo yum install rsh
$ sudo yum install rsh-server
- 启动server端
$ sudo systemctl start rsh.socket
$ sudo systemctl start rlogin.socket
$ sudo systemctl start rexec.socket
设置自动启动
$ sudo systemctl enable rsh.socket
$ sudo systemctl enable rlogin.socket
$ sudo systemctl enable rexec.socket
这几个服务的定义分别是:
/usr/lib/systemd/system/rsh@.service
/usr/lib/systemd/system/rlogin@.service
/usr/lib/systemd/system/rexec@.service
查看状态:
$ systemctl status rsh.socket
$ systemctl status rlogin.socket
$ systemctl status rexec.socket
还可以查看端口监听情况:
$ netstat -an |grep -w LISTEN | grep -w 512
tcp6 0 0 :::512 :::* LISTEN
$ netstat -an |grep -w LISTEN | grep -w 514
tcp6 0 0 :::514 :::* LISTEN
- 修改rsh的认证信息
例如:
注意这行配置:auth sufficient pam_rhosts.so
$ cat /etc/pam.d/rsh
#%PAM-1.0
# For root login to succeed here with pam_securetty, "rsh" must be
# listed in /etc/securetty.
auth required pam_nologin.so
auth required pam_securetty.so
auth required pam_env.so
auth sufficient pam_rhosts.so
account include password-auth
session optional pam_keyinit.so force revoke
session required pam_loginuid.so
session include password-auth
- 配置~/.rhosts信息
这个配置内容影响rsh/rlogin,用来实现无密码登录。
$ cat ~/.rhosts
#remotehost remoteuser
+ <username>
其中"+"表示任意的意思,出现在host位置则是任意远程主机,出现在user位置则是任意远程用户。
这个文件有点绕,这里举一个例子:
- "~/"是谁,是服务器上的目标用户,就是想登录的用户,就是client端用-l指定的用户名。
- 这个"~/.rhosts"的内容是定义客户机和用户名,就是客户机上的这个用户名可以执行rsh命令。
例如:
$ hostname
<servermachine>
$ whoami
tom
$ cat ~/.rhosts
<clientmachine> jerry
表示:在客户机<clientmachine>上的用户jerry可以使用命令rsh -l tom <servermachine> <cmd>
,这个命令不需要密码。
另外默认情况下rsh不允许root账号登录,如果要使用root则必须修改/etc/securetty
$ sudo echo "rsh" >> /etc/securetty
$ sudo echo "rlogin" >> /etc/securetty
$ sudo echo "rexec" >> /etc/securetty
客户端安装
- 安装rsh客户端
$ sudo yum install rsh
- 运行rsh
$ rsh -l <username> <remote-server> <command>
网友评论