rsh または remsh コマンド

目的

指定したコマンドをリモート・ホスト側で実行するか、またはリモート・ホストにログインします。

構文

{ rsh | remsh } RemoteHost [ -n ] [ -l User ] [ -f | -F ] [ -k realm ] [ -S ] [ -u ] [ Command ]

説明

/usr/bin/rsh コマンドは、Command パラメーターで指定したコマンドを、RemoteHost パラメーターで指定したリモート・ホスト側で実行します。 Command パラメーターを指定しない場合には、rsh コマンドが RemoteHost パラメーターで指定したリモート・ホストにログインします。rsh コマンドは、ローカル・コマンド・ラインからリモート・コマンドへ標準入力を送信し、リモート・コマンドから標準出力と標準エラーを受信します。
注: リモート・コマンドへの入力は必ずローカル・コマンド・ラインで指定しなければならないため、rsh コマンドを使用してリモート・ホスト上で対話式コマンドを実行することはできません。リモート・ホスト上で対話式コマンドを実行する必要がある場合には、 rlogin コマンドを使用するか、または Command パラメーターを指定せずに rsh コマンドを使用してください。 Command パラメーターを指定しないと、rsh コマンドは、代わりに rlogin コマンドを実行します。

アクセス・ファイル

-l フラグを指定しないと、 ローカル・ユーザー名がリモート・ホスト側で使用されます。-l User を入力すると、指定したユーザー名がリモート・ホスト側で使用されます。

標準の認証の使用

次の条件のうち、少なくとも 1 つが満たされた場合にのみ、リモート・ホストへのアクセスが可能になります。

  • ローカル・ユーザー ID が root ユーザーでなく、またローカル・ホストの名前が、リモートの /etc/hosts.equiv ファイルに同等のホストとしてリストされています。
  • ローカル・ユーザー ID が root ユーザーの場合、 または /etc/hosts.equiv の検査が正常終了でない場合には、 リモート・ユーザーのホーム・ディレクトリーには、ローカル・ホストとユーザー名のリストを含む $HOME/.rhosts ファイルが必要です。

ユーザーは $HOME/.rhosts ファイルに対して、許可を任意に設定できますが、.rhosts ファイルの許可は 600 (オーナーだけが読み取りおよび書き込み可能) に設定することをお勧めします。

上記の条件の他に、リモート・ユーザーのアカウントにパスワードが定義されていなければ、rsh コマンドを使用してリモート・ホストにアクセスできます。ただし、セキュリティー上の理由で、すべてのユーザー・アカウント上でパスワードを使用することをお勧めします。

Kerberos 5 認証の場合

次の条件のすべてが満たされた場合にのみ、リモート・ホストへのアクセスが可能になります。

  • ローカル・ユーザーに現在の DCE 証明書が与えられている。
  • ローカル・システムとリモート・システムが、Kerberos 5 認証に対して構成されている (一部のリモート・システムでは、この方法は不要。デーモンが klogin ポートを listen していることが必要)。
  • リモート・システムが DCE 証明書をリモート・アカウントへのアクセスに充分であるとして受け入れる。詳細については、kvalid_user 関数を参照してください。

リモート・コマンドの実行

リモート・コマンドの実行時に、割り込み (Interrupt)、 完了 (Terminate)、あるいは終了 (Quit) のキー・シーケンスを押すと、対応するシグナルがリモート・プロセスに送信されます。ただし、停止 (Stop) のキー・シーケンスを押すと、ローカル・プロセスだけが停止します。 通常、リモート・コマンドが終了すると、ローカルの rsh プロセスは終了します。

シェル・メタキャラクターがリモート・ホスト上で解釈されるようにするには、メタキャラクターを " " (二重引用符) で囲んでください。これ以外の場合には、メタキャラクターがローカル・シェルにより解釈されます。

rsh コマンドを使用すると、(ユーザーが書き込み許可を持っている) パスへのリンクを作成することができます。このとき、HostName パラメーターで指定したホスト名がリンク名として使用されます。以下に例を示します。

ln -s /usr/bin/rsh HostName

このリンクが設定された後、HostName パラメーター、およびコマンド・ラインから Command パラメーターで指定したコマンドを指定できます。このコマンドは、rsh コマンドによってリモート・ホスト上でリモートで実行されます。この構文は次のとおりです。

HostName コマンド

例えば、リモート・ホスト opus にリンクしているときに、date コマンドを実行したい場合は、以下のように入力します。

opus date

-l User フラグが指定できないため、ローカル・ユーザーがリモート・ホスト上にユーザー・アカウントを所有している場合にしか、リモート・コマンドは正しく実行されません。これ以外の場合には、rsh コマンドにより、Login incorrect というエラー・メッセージが戻されます。コマンドを指定せずに HostName パラメーターを指定すると、rsh コマンドは rlogin コマンドを呼び出し、このコマンドにより、リモート・ホストにログインすることができます。この場合にも、ログインを正常に行うには、ローカル・ユーザーがリモート・ホスト上にユーザー・アカウントを所有していなければなりません。

フラグ

-a
リモート・コマンドの標準エラーを指示は、 標準出力と同様です。任意のシグナルをリモート・プロセスに送信するサービスは提供されません。
-f
これを指定すると、証明書が転送されます。 このフラグは、Kerberos 5 が現在の認証メソッドでない場合は無視されます。認証は、現在の DCE 証明書に転送可能のマークが付けられていない場合には無視されます。
-F
これを指定すると、証明書が転送されます。 さらに、リモート・システムの証明書に転送可能のマークが付けられます (これによって、 別のリモート・システムにそれらの証明書を渡すことができるようになります)。このフラグは、Kerberos 5 が現在の認証メソッドでない場合は無視されます。認証は、現在の DCE 証明書に転送可能のマークが付けられていない場合には無視されます。
-k realm
これを使用することで、ユーザーは、リモート端末のレルムを指定できます。この目的のために、レルムとは、DCE セルと同義です。 このフラグは、Kerberos 5 が現在の認証メソッドでない場合は無視されます。
-l User
rsh コマンドが、ローカル・ユーザー名ではなく、User 変数によって指定されたユーザーとしてリモート・ホストにログインする必要があることを指定します。このフラグを指定しないと、ローカルのユーザー名とリモートのユーザー名が同一になります。
-n
rsh コマンドが標準入力からの読み取りを実行してはならないことを指定します。
-S
セキュア・オプション。標準エラー接続のリモート IP アドレスが、標準出力接続と同じになるように強制します。
-u
標準 AIX® 認証のみを使用します。

終了状況

このコマンドは、以下の終了値を戻します。
0
正常終了。
>0
エラーが発生しました。

セキュリティー

次の条件のうち、少なくとも 1 つが満たされた場合にのみ、リモート・ホストへのアクセスが可能になります。
  • ローカル・ユーザー ID が認証データベース内でプリンシパルとしてリストされ、 kinit を実行してチケットを獲得していた場合。
  • $HOME/.klogin ファイルがある場合は、そのファイルはターゲット・システム上のローカル・ユーザーの $HOME ディレクトリーになければなりません。ローカル・ユーザーおよびすべてのユーザーがリストされる必要があります。そうしないと、rsh コマンドに許可されているサービスが考慮されます。このファイルは、 ローカル .rhosts ファイルと同等の機能を実行します。このファイル内の各行には、principal.instance@realm 形式のプリンシパルがなければなりません。 親ユーザーが .klogin ファイル内で命名されたプリンシパルの 1 つとして認証されている場合は、アカウントへのアクセスが認可されます。アカウントの所有者は、.klogin ファイルがない場合にアクセスが認可されます。

セキュリティー上の理由から、$HOME/.klogin ファイルはリモート・ユーザーが所有し、.klogin ファイルへの読み取りおよび書き込みアクセス (許可 = 600) は AIX 所有者 ID だけが持つようにする必要があります。

RBAC ユーザーおよび Trusted AIX ユーザーへの注意: このコマンドは特権操作を実行できます。特権命令を実行できるのは特権ユーザーのみです。 権限および特権について詳しくは、「セキュリティー」の『特権コマンド・データベース』を参照してください。このコマンドに関連した特権および権限のリストについては、lssecattr コマンドまたは getcmdattr サブコマンドの項を参照してください。

以下の例にあるローカル・ホスト、host1 は、リモート・ホスト、host2 側の /etc/hosts.equiv ファイルにリストされています。

  1. リモート・ホスト上の空きディスク・スペース容量を検査するには、次のように入力します。
    rsh host2 df
    host2 上の空きディスク・スペース容量はローカル・システムに表示されます。
  2. リモート・ファイルをリモート・ホスト上の別のファイルに追加するには、>> メタキャラクターを引用符で囲み次のように入力します。
    rsh host2 cat test1 ">>" test2
    ファイル test1 が、リモート・ホスト host2 上の test2 に追加されます。
  3. リモート・ホスト上のリモート・ファイルを、ローカル・ファイルに追加するには、引用符を省略し、次のように入力します。
    rsh host2 cat test2 >> test3
    host2 上のリモート・ファイル test2 が、ローカル・ファイル test3 に追加されます。
  4. リモート・ファイルをローカル・ファイルに追加し、リモート・ホストでリモート・ユーザーの許可を使用するには、次のように入力します。
    rsh host2  -l jane cat test4 >> test5
    リモート・ファイル test4 が、リモート・ホストにおいてユーザー jane の許可で、ローカル・ファイル test5 に追加されます。
  5. この例は、ターゲットとサーバーの両方で認証が Kerberos 4 の場合に、root ユーザーがリモート・ホスト上で rcp を出す方法を示してます。root ユーザーは認証データベースに登録され、 ローカル・ホスト上に kinit を出しておく必要があります。コマンドはローカル・ホストで出され、 ファイル stuff をノード r05n07 から SP 上の r05n05 へコピーします。
    /usr/lpp/ssp/rcmd/bin/rsh r05n07 'export KRBTKTFILE=/tmp/rcmdtkt$$; ¥
    /usr/lpp/ssp/rcmd/bin/rcmdtgt; ¥
    /usr/lpp/ssp/rcmd/bin/rcp /tmp/stuff r05n05:/tmp/stuff;'
    root ユーザーは、KRBTKTFILE 環境変数を一時チケット・キャッシュ・ファイル名に設定してから、rcmdtgt コマンドを出してサービス・チケットを獲得します。rcp はサービス・チケットを使用して、ホスト r05n07 からホスト r05n05 へ認証します。

ファイル

項目 説明
$HOME/.klogin ローカル・ユーザー・アカウントを使用できるリモート・ユーザーを指定します。
/usr/lpp/ssp/rcmd/bin/rsh SP Kerberos 4 rsh ルーチンを (適用できる場合) 呼び出す AIX セキュア /usr/bin/rsh へのリンク。
/usr/lpp/ssp/rcmd/bin/remsh SP Kerberos 4 rsh ルーチンを (適用できる場合) 呼び出す AIX セキュア /usr/bin/rsh へのリンク。

前提条件情報

概要については、「IBM® AIX並列システム・サポート・プログラム (PSSP) 管理ガイド」のセキュリティーに関する章を参照してください。 この資料には、Web サイト http://www.rs6000.ibm.com/resource/aix_resource でアクセスできます。

Kerberos に関する追加情報については、「IBM Parallel System Support Programs for AIX: Command and Technical Reference」の『RS/6000® SP Files and Other Technical Information』 のセクションを参照してください。 この資料には、Web サイト http://www.rs6000.ibm.com/resource/aix_resource でアクセスできます。