rshのサービスをセットアップして、rsh を使用できるようにします。
ファイヤーウォールは無効であることとします。(ファイヤーウォールに rsh の穴を開ける設定は、ここでは扱いません)
「ホストA(192.168.1.12)」で以下のようにrshコマンドを実行して、「ホストB(192.168.1.13)」の uptime を取得してみます。
# rsh -l canopus 192.168.1.13 "uptime" connect to address 192.168.1.13 port 544: Connection refused Trying krb4 rsh... connect to address 192.168.1.13 port 544: Connection refused trying normal rsh (/usr/bin/rsh)上記のようなエラーがでて止まる場合は、ホストBで rshサービスが動いてません。上記コマンドはCtl+C で強制終了させます。
CentOS5 を最小構成でインストールした場合、rshサービスはインストールされません。まず、ホストBに rshサービスをインストールします。
# yum install rsh-server次に、rshサービスの自動起動設定をして、xinetd を再起動します。
# chkconfig rsh on # service xinetd restartホストBの rshサービスの設定が完了したので、上記のrshコマンドをホストAで実行してみます
# rsh -l canopus 192.168.1.13 "uptime" connect to address 192.168.1.13 port 544: Connection refused Trying krb4 rsh... connect to address 192.168.1.13 port 544: Connection refused trying normal rsh (/usr/bin/rsh) Permission denied.権限なし(Permission denied) とエラーがでます。
この例では rsh コマンドの引数に "-l canopus" と指定して ホストBのcanopus ユーザーで uptime を実行しようとしています。
なので、ホストBのcanopusユーザーのホームディレクトリに ".rhosts" ファイルを作成して、rshでの実行許可を与えます。
".rhosts" は以下のように、実行許可を与えるホストとユーザーのペアを記述します。
192.168.1.12 root 192.168.1.12 taroこの例では、ホストA(192.168.1.12)の root と taro が、ホストBのcanopusユーザーでコマンドを実行できるようになります。なお、".rhosts"のパーミションは、"600" にします。
# chmod 600 .rhostsこれでもう一度、ホストAの root ユーザーで rsh を実行してみます
# rsh -l canopus 192.168.1.13 "uptime" connect to address 192.168.1.13 port 544: Connection refused Trying krb4 rsh... connect to address 192.168.1.13 port 544: Connection refused trying normal rsh (/usr/bin/rsh) 12:09:10 up 11 days, 14:04, 2 users, load average: 0.16, 0.03, 0.01これで、ホストBの canopus ユーザーで rsh を実行できるようになりました。
ちなみに、実行時に"544: Connection refused"とメッセージがでるのは、ホストAで、ケルベロス設定が必要な"/usr/kerberos/bin/rsh"を実行しているからで す。(これはCentOS5のデフォルトです)
# which rsh /usr/kerberos/bin/rsh"544: Connection refused" というメッセージを出したくなければ、以下のように "/usr/bin/rsh" を使用します。
# /usr/bin/rsh -l canopus 192.168.1.13 "uptime" 12:08:49 up 11 days, 14:03, 2 users, load average: 0.00, 0.00, 0.00