リモートシェル(rsh)について
リモート
シェル(Remote Shell、略称rsh)は、ネットワーク越しに別のコンピュータ上でコマンドを実行するために使用されるCUIプログラムです。このプログラムを利用することで、特定の
ユーザーとしてコマンドを実行したり、他のシステムにアクセスしたりすることができます。
rshの動作環境と基本的な使い方
rshを利用するためには、対象のコンピュータにrshdというデーモンが動作している必要があります。このデーモンは、リモート
シェルのリクエストを処理する役割を果たします。また、rshという名称は、制限された
シェル(restricted shell)を指すこともあり、これは
PWB/UNIX|PWB_UNIXから登場し、SVR4などのOSに搭載されていました。通常、これらの制限された
シェルは/usr/lib/rshという場所に存在します。
rshの歴史
この機能は、BSD
オペレーティングシステムで開発され、rcp(リモートコピー)と共に
1983年に4.2BSDに組み込まれました。その後、rshは他の
オペレーティングシステムにも広まり、さまざまな環境において利用されるようになりました。
セキュリティの観点
ただし、rshには明確なセキュリティ上の懸念があります。ネットワーク上に情報を平文で送信するため、悪意のある第三者による傍受のリスクが存在するのです。特に、
パスワードを
暗号化せずに送信する実装もあり、
認証情報が漏洩する危険性があります。このため、ほとんどのネットワーク環境では、
暗号化機能を有するSSH(
Secure Shell)がrshの代わりに広く利用されています。
コマンドの実行例
例えば、rshを使用して、host.example.comというホスト上でremoteuserという
ユーザー名で新しいディレクトリを作成するコマンドは次のようになります。
```bash
rsh -l remoteuser host.example.com "mkdir testdir"
```
コマンドの実行が終わると、rshは終了します。また、実行するコマンドが指定されていない場合は、rloginを通じてリモートシステムにログインします。このとき、リモートコンピュータの位置はDNS(
Domain Name System)を用いて解決されます。
利用するポート
rshはTCPポート514を利用し、これを通じてリモート
シェルの通信が行われます。
参考文献
- - rsh - リモートシェル - rsh manページ
- - Back to the Basics: Solaris and inetd.conf Part One - ウェイバックマシン(2003年3月11日アーカイブ分)