リモートシェル(英: Remote Shell, rsh)は、別のユーザーとしてシェルのコマンドを実行したり、コンピュータネットワーク経由で別のコンピュータ上でシェルのコマンドを実行したりするCUIプログラムである。rsh を使って別のコンピュータ上でコマンドを実行するには、そのコンピュータ上で rshd デーモンが動作していなければならない。また、同じ rsh という名前で restricted shell と呼ばれるものもあり、PWB/UNIX で登場し、SVR4などに搭載されていた(通常、/usr/lib/rsh にある)。
rsh はBSDオペレーティングシステムで生まれた機能で、rcp と共に rlogin パッケージの一部として1983年の 4.2BSD に搭載された。その後、rsh は他のオペレーティングシステムに移植されていった。
rsh では、暗号化せずにネットワーク上に情報を送るなどの理由から、セキュリティ上問題があるとされている。実装によっては、認証のためのパスワードも暗号化せずにネットワーク上を転送することがある。そのため、現在ではインターネットなどのネットワークではほとんど使われず、同様の機能を持つ ssh (secure shell) が使われることが多い。
例として、rsh を使って host.example.com というコンピュータ上で remoteuser というユーザー名で mkdir testdir というコマンドを実行する場合を示す。
rsh -l remoteuser host.example.com "mkdir testdir"
コマンドの実行が完了すると rsh は終了する。実行すべきコマンドが指定されない場合、rsh は rlogin を使ってリモートのシステムにログインする。リモートのコンピュータがどこにあるかは Domain Name System を使って検索される。
rsh は公開ポートとして TCP 514 を使用する。