SSH と psexec のどちらを使うべきでしょうか? それぞれの利点は何ですか?

SSH と psexec のどちらを使うべきでしょうか? それぞれの利点は何ですか?

現在、当社の開発運用チームはソースをビルドし、そのソースをターゲット ボックスにデプロイしています (これは一般的な設定です)。現在、psexec を使用してリモート ホストにコマンドを発行しています (つまり、環境のシャットダウン、新しいコードの転送、環境の再起動など)。

このような用途には SSH を使用する方がよいでしょうか? 信頼性やユーザー フレンドリー性は向上しますか? それぞれの長所と短所について、どなたか教えていただけませんか?

答え1

Windows には SSH が標準で付属していないため、展開先の現在のすべてのボックスに SSH を設定する必要があります。

もちろん、psexec 経由のシェル スクリプトを使用してこれを自動化するインストール スクリプトを設定することもできます :)

それは実際には使用事例によって異なります。

セキュリティはどれくらい重要ですか?

SSH は、telnet の代替として設計されました。telnet と同様にリモート マシン上でシェルを提供しますが、すべてのデータは安全なトンネルを介して送信されるため、誰かがパケットをスニッフィングしている場合でも、すべてのデータは暗号化されます。

全体的に、SSH ははるかに多用途です。TCP 転送を設定して、他のアプリケーションが SSH トンネルを使用して通信できるようにすることができます。この例としては、VNC があります。通常、リモート フレーム バッファ (画面データ) は、ネットワーク経由で暗号化されずに送信されます。SSH 経由でリモート マシンに簡単に接続し、SSH トンネルを使用して画面データを安全に送信できます。

PSEXEC は、上記で説明したことを実現する優れたツールです。追加の設定 (Windows に組み込まれている) は必要ありません。

PSEXEC は、通信に RPC (リモート プロシージャ コール) を使用します。使用される方法についてはよくわかりませんが、"通信チャネル" が確立されると、データは暗号化されると思います (SSH はさまざまな方法で構成できます)。

ただし、ユーザー資格情報を提供する必要がある場合は、ネットワーク経由で送信されますin PLAIN TEXT。これはコマンドの出力に書き込まれる可能性があると思いますpsexec /?。ただし、現時点では確認するために Windows ボックスの前にいません。

これを見てリンクオプションについては、例のセクションの前に注意書きがあります。

したがって、これは本当に何をする必要があるかによって異なります。安定性に関しては、PSEXEC で安定性の問題に遭遇したことはありません。PSEXEC の使用に問題がない限り、安定性は PSEXEC よりも SSH を検討する理由にはならないと思います。

PSEXEC は SSH ほど構成可能ではありません。PSEXEC の制限に遭遇しない限り、SSH を検討する必要があるかもしれません。新しいコードをコピーしてリモート マシンを再起動し、PSEXEC を介して資格情報を渡さない (つまり、リモートで現在のユーザー名を使用してコマンドを実行する) だけであれば、それを続けてもかまいません。

実際のところ、コピーと再起動だけが必要な場合は、 PSEXEC の代わりに/ /cmd.exeなどのコマンド(LAN 上にある場合、または VPN 経由などの他のルートがある場合) を使用するのはなぜでしょうか?copyxcopyshutdown

関連情報