現在、展開オプションを検討しています。 WindowsマシンでJenkinsを使用して、複数のリモートWindowsサーバーへの展開を制御しています。
展開には、リモートWindowsサーバーでのバッチスクリプトの実行が含まれますが、これまでのところ、psexecがそのトリックを実行しているようです。私が抱えている問題の1つは、psexecにプレーンテキストでパスワードを指定する必要があることです。
PsexecのSSH公開/秘密鍵、またはファイルの同期とバッチスクリプトの実行を可能にするWindowsのその他のパスワードなしのリモートログインに相当するものを知っている人はいますか?
私は、Windows用のSSHキーベースの認証に本当に類似しているものは何も知りません。しかし、ここにいくつかのアイデアがあります:
here から、最初にリモートホストのipc $共有に接続してから、psexecを実行すると、そのpsexecはipc $接続のコンテキストで自動的に実行されることがわかりました。
したがって、バッチファイルでは次のようになります。
Net Use \\myserver\IPC$ /user:MyID MyPassword
psexec \\myserver c:\whatever.cmd
これにより、ユーザー名/パスワードがクリアテキストでネットワーク経由で送信されなくなります。ただし、ユーザー名/パスワードはバッチファイル内に表示されたままになります。
これを回避する1つの方法は、「Net Use\[コマンドライン引数]\IPC $/user:MyIDMyPassword」を実行することだけが機能する実行可能プログラムを作成することです。 (個人的には、autoitのようなものを使用して.exeを記述します。)「nu.exe」という名前を付けたとしましょう。次に、秘密のユーザー名/パスワードは少なくとも「nu.exe」内に埋め込まれているため、クリアテキストではありません。 逆コンパイル を介してリバースエンジニアリングすることはおそらく可能ですが、少なくともある程度難読化されています。
次に、プロセスは次のとおりです。
nu.exe myserver
psexec \\myserver c:\whatever.cmd
ただし、nu.exeにアクセスできる人は誰でも、nu.exeに埋め込んだIDとしてリモートホスト上でプログラムを実行できるため、nu.exeを安全な場所に保管する必要があります。
したがって、どちらのオプションにも欠点がありますが、おそらくそのうちの1つが機能します...
PAExec は、-p @および-p @ dパラメーターを使用した方が少し優れたソリューションです。
パスワードをファイルに書き込んでPAExecを実行すると、すぐにファイルが読み取られて削除されます。それでも公開鍵/秘密鍵を使用したSSHほど良くはありませんが、オプションです...