2

複数のリモート UNIX ホストで、アプリケーションのパッケージ化、アプリケーションのデプロイ、ログのチェックなど、やや複雑なことを行う Perl Expect.pmスクリプトがあります。

私の前任者は、rsh を使用して同様のスクリプトを作成していました。

両者の間により良いアプローチはありますか?それとも、別のものを一緒に使用する必要がありますか?

誰かが SSH を持ち出すと思います。基本的にはrshの代わりですよね?残念ながら、SSH は現在、私にとって選択肢ではありません。

もう 1 つ追加する必要があるのは、ログインした後、特定のユーザーに対して SUDO を実行して、リモート ホストでほとんどの操作を実行できるようにする必要があることです。

4

4 に答える 4

4

もう 1 つ追加する必要があるのは、ログインした後、特定のユーザーに対して SUDO を実行して、リモート ホストでほとんどの操作を実行できるようにする必要があることです。

この特定のポイントに対処するには、 rsh(またはssh) を使用して、リモート セッションでどのユーザーになるかを指定できます。

$ rsh -l username hostname

この場合、使用する必要はありませんsudosshセキュリティ上の問題があるため、今が間違いなく調査する時期です。構文は同じですがssh、わずかに異なる (そしてもっと良いと思います) 構文も使用できます。

$ ssh username@hostname

私はexpect細心の注意を払いすぎていることがわかりましたが、それに関する私の経験は実質的ではありません.

于 2009-04-21T00:23:52.537 に答える
3

彼らはさまざまなことをします。Expect は、そうでなければ手動で応答することになるものをスクリプト化する方法です。rsh -- リモート シェル、制限付きシェルではありません。不幸な名前の衝突 -- 別のシステムでコマンドをリモートで実行できます。

とはいえ、rsh を使用してリモート コマンドを実行したり、sudo を実行したりすることのセキュリティ ホールやその他の欠点は計り知れません。

于 2009-04-20T23:50:47.877 に答える
3

これを行う方法は複数あります。

  • telnet、rsh、または ssh を想定
    • 長所: 単一の接続、エスケープの問題が少ない
    • 短所:変化する環境での脆弱性
  • rsh/ssh 各コマンドを個別に
    • 長所: エスケープの問題が少なく、変化する環境での信頼性が高い
    • 短所:各接続は認証に時間がかかり、sshの場合は暗号化のハンドシェイクに時間がかかります
  • rsh/ssh すべてのコマンドを一度に
    • 長所: 単一接続 (オーバーヘッドが少ない)、予想よりも信頼性が高い
    • 短所:特にそこに一握り以上のステートメントがあるため、メンテナンスの脆弱性、エスケープの問題がより一般的です(perlでエスケープして、rsh / sshによってエスケープされ、リモートシェルによってエスケープされ、適切に処理されるようにしますsudo されたリモートシェルによって?)
  • rsh/ssh を開き、スクリプトを実行します
    • 長所: 単一接続、より信頼性が高く、より保守しやすい
    • 短所:そこに到達する方法を見つける(rcp / scpは機能し、NFSは機能します。最適な方法を決定する必要があります)。

すべてのことを考慮すると、これは最もマイナーな短所です。単純に次のようなことができるからです。

 open my $fh, "|ssh user@host 'cat > /tmp/myscript'";
 print $fh $script;
 system qw(ssh user@host), "chmod u+x /tmp/myscript; /tmp/myscript; rm /tmp/myscript";

もちろん、いくつかのエラー処理 (失敗した場合、/tmp/myscript が存在する場合など) を追加しますが、それがアイデアです。

于 2009-04-22T13:10:47.007 に答える
2

rshtelnetviaの間の選択肢が与えられた場合expect、私は を選びrshます。 Expectスクリプトは脆弱です。1 つを壊すのに必要なのはPS1、リモート マシンで の値を誰かが変更することだけです。を使用rshすることで、最終的に 90 年代に入って使用を開始する日の準備も整いますssh(ほとんどの場合、変更rcpするだけscpですべてが機能するため) rshssh

于 2009-04-20T23:59:17.417 に答える