Q. rsh・rlogin・rcp って何ですか。
A. 他のホストでコマンドを実行 (rsh)、他のホストから (あるいは
他のホストへ) ファイルをコピー (rcp)、他のホストにログイン
(rlogin) するコマンドです。
相手側に対応する rshd、rlogind などのサーバが用意されている
必要があります。FreeBSD では、これらのサーバはデフォルトで
実行されるようになっています。
local.hoge.ac.jp の user1 というユーザが、remote.hoge.ac.jp に
hoge2 というユーザとしてログインする場合、
% rlogin -l user2 remote.hoge.ac.jp
とします。もしリモートとローカルでユーザ名が同じなら `-l user2' は
省略可能で、単に
% rlogin remote.hoge.ac.jp
とすればよいです。
また、相手側のホスト (remote.hoge.ac.jp) の ~/.rhosts という
ファイルに
local.hoge.ac.jp user1
と記述しておくと、local.hoge.ac.jp から
- rlogin 時にパスワード入力が不要
- rsh・rcp が使用可能。こちらもパスワード入力が不要
ができるようになります。
- rsh の使い方。
local.hoge.ac.jp から remote.hoge.ac.jp で ls コマンドを
実行するには
% rsh -l user2 remote.hoge.ac.jp ls
とします。
- rcp の使い方。
% rcp user2@remote.hoge.ac.jp:/dir1/dir2/file .
remote.hoge.ac.jp の /dir1/dir2/file を local.hoge.ac.jp の
カレントディレクトリにコピー
% rcp user2@remote.hoge.ac.jp:dir1/dir2/file .
ホームディレクトリ以下の dir1/dir2/file がコピーされます。
% rcp file user2@remote.hoge.ac.jp:~/dir1/dir2/
逆向きにリモートへファイルをコピー
% rcp user2@remote.hoge.ac.jp:~/dir1/\*.txt ~/dir1
エスケープすればワイルドカードも使えます。
上の例とは逆に、local.hoge.ac.jp の ~/.rhosts に
remote.hoge.ac.jp user2
と書いておくと、remote.hoge.ac.jp から local.hoge.ac.jp へ、
ノーパスワードで rsh・rlogin・rcp が実行できます。
要は、
「ログインしたいホストの ~/.rhosts に」
「どこのホストのどういう名前のユーザを許可するか」
を書いておくわけです。
r* コマンドは便利なのですが、セキュリティを重視するサイトでは、
rsh・rlogin・rcp の代わりに ssh を使うところが多いです。
また、セキュリティ以外の面でも、ネットワークが細い場合は
-C オプションによる圧縮の効果もあります。できるだけ ssh を
使う方がよいでしょう。
[管理番号 1577] ssh・slogin・scp って何ですか。
r* コマンドで接続させないようにするには、/etc/inetd.conf から
shell stream tcp nowait root /usr/libexec/rshd rshd
login stream tcp nowait root /usr/libexec/rlogind rlogind
のエントリを # でコメントアウトしたあと、
# killall -HUP inetd
として現在実行中の inetd にファイル変更を反映させます。
仮に r* コマンドを使用可能にするとしても、tcp_wrapper
(tcp_wrappers) を導入し、指定したホスト以外からの
rsh・rlogin・rcp を弾くようにした方がよいでしょう。
グループ名: ssh