FreeBSD QandA 1576

FreeBSD QandA

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


間違い・追加情報を見付けた場合は、 修正案の投稿のしかた を読んだ上で、
QandA@jp.FreeBSD.org まで お知らせください。