默认编辑用户目录的.rhosts就可以了,格式如下:
192.168.122.1 uos
这代表远端主机 (192.168.122.1) 上的uos用户 可以以当前用户身份登陆到本机而不需要输入密码执行命令。假设当前用户为 test,那么远端主机可以用命令 rsh -l test 192.168.122.213 pwd 以test用户登陆到本机(192.168.122.213)执行pwd命令并返回结果。
.rhosts 的条目含义为,允许的远端主机 允许的远端主机用户 ,然后远端主机的用户会映射到.rhosts目录所在的用户来执行。
当然,如果远端主机的用户和当前目录所在的用户名一样,就不用指定-l直接 rsh -l 192.168.122.213 pwd 就能免密在远端执行命令了。
如果需要放开任意主机过来执行命令,直接在.rhosts里面写一个+号(表示任意主机)就可以,但远端用户名必须和当前用户名相同,如果不相同,那得写2个+号,空格隔开 表示任意主机的任意用户。
如果需要通过远端主机登陆本机以root用户来执行命令,还需要编辑 /etc/securetty
echo "rsh" >> /etc/securetty
如果rlogin,rexec也需要用root来执行,还需要加入rlogin rexec到这个文件(防火墙端口记得放开)。
另外.rhosts文件权限最好设置为600.
如果要全局设置远端主机,可以设置在 /etc/hosts.equiv文件里,这个文件的主机会被映射为本地主机。
参考资料:
man pam_rhosts
man hosts.equiv
/etc/pam.d/rsh
以前玩solaris的时候只知道一个+号走天下,因为安装集群oracle什么的,两台或者多台机器用户名是一样的,直接一个+号也不考虑安全的因素就搞定了。这两天因为rsh客户端用户名和服务器上的用户名不一致需要-l 指定的时候才发现,还是对pam_rhosts这个pam模块以及rhosts文件的规则没有细看导致老是权限被拒绝再认真学习了下。