SSHサーバー(ジャンプサーバー)アクセスを自動的に取得する.bat
ファイルを作成しました。今、私はそのウィンドウでヒットしたいいくつかのコマンドを持っています。
元のために。 (rootアクセスを取得するには)
usrun -u root Rush
このコマンドでは、パスワードの入力を求められます。
それで、.bat
ファイルを通じてこれを完全に実現するにはどうすればよいですか?
PuTTYを使用してコマンドを自動的に実行するには、 -m
スイッチ を使用して、実行するコマンドを含むテキストファイルを渡します。
PuTTY.exe -ssh user@Host -m commands.txt
commands.txt
に含まれる場所
usrun -u root Rush
しかし、これは、usrun
コマンドへの入力であり、それ自体のコマンドではないため、-m
はここでは役に立たないため、パスワードの助けにはなりません。 usrun
がわからないので、パスワードを「入力」して他の方法を「認証」する方法があるかどうかはわかりません。 一般に、パスワード入力を自動化しようとするときはいつでも、あなたは何か間違ったことをしています。これはセキュリティ上のリスクです。より良い(=より安全な)方法があるかどうかを常に確認してください。
別の問題は、追加のコマンドです。実行するすべてのコマンドを同じ環境/シェルで実行する場合は、それらをcommands.txt
に1行ずつ入力できます。
command1
command2
ただし、すべてのSSHサーバーが複数の回線をサポートしているわけではないことに注意してください。大多数はそうします。そうでない場合は、常にサーバー/シェル固有の方法を使用して、次のように1行で複数のコマンドを実行できます。
command1 && command2
しかし、追加のコマンドが実際に最初のコマンドのサブコマンドである場合、su
、sh
、bash
、ssh
、ftp
などのコマンドの場合(およびusrun
の場合)、追加のコマンドは実際にはトップレベルの環境/シェルのスタンドアロンではない最初のコマンド。これは、実際には上記のパスワード入力の問題と同じ問題です。
パスワードの問題とは逆に、サブコマンドを使用する場合、基本コマンドには、入力を使用する代わりに、それらを提供する別のメカニズムがある場合があります。
そうは言っても、PuTTYの代わりに Plink(PuTTYコマンドライン接続ツール) を使用できます。これは、PuTTYのように機能するPuTTYパッケージのツールですが、GUIではなくコンソールアプリケーションです。そのため、入出力リダイレクトを使用できます。したがって、コンソールで入力したかのように、パスワードまたはプライマリコマンドのサブコマンドをファイルからリダイレクトできます。とにかく、Plinkはタスクを自動化するツールであり、PuTTYではありません。
echo usrun -u root Rush>input.txt
echo password>input.txt
echo command_for_usrun>input.txt
plink -ssh user@Host < input.txt
または、必要な処理を行う-cmd
スイッチを指定して KiTTY を使用します。 KiTTYはGUIアプリケーションです(PuTTYのクローンです)。その-cmd
スイッチは基本的にタイピングをシミュレートするため、コマンドへの入力(パスワードとサブコマンド)に問題はありません。しかし、私はそれがかなり信頼できないと思いました。あまりお勧めしません。しかし、あなたはそれがあなたの仕事に十分であると思うかもしれません。