おはようございます。ローカル PC (Windows) で詳細を調べるために、netcat コマンドを実行して出力を取得する必要があります。必要なのは「接続良好/不良」だけです。
今私は以下の手順でPuTTYを使用しています
- Windows -> PuTTY
- PuTTY -> 「Server1」上の SSH (Linux Suse)
- Server1 シェル -> 「Server2」上の SSH (Linux Suse)
- Server2 シェル ->
nc -zv 10.xx.xx.xx yyyy
プロセスを自動化するための簡単なスクリプトを作成したいと思います。バッチとplinkを使用してこれを実行しようとしています。他のソフトウェアや言語を使用することもできますが、私はあまり専門家ではありません。
Linuxサーバーはライブサーバーなので、何度も試すことはできませんが、確実に実行する必要があります。ファイアウォールの問題でこれらの手順を実行する必要があります。サーバー1は最終サーバーを認識しませんが、サーバー2は最終サーバーを認識します。
次のコマンドを構成しましたが、動作するかどうかわかりません
plink -ssh %server1% -pw %password% -no-antispoof -proxycmd "ssh %User%@%server2% -pw %password%" -m commands.txt > result.txt 2>&1
答え1
まず、server1 でコマンドを実行しssh
、server2 に接続してそこでコマンドを実行する場合の構文は次のようになります。
plink -ssh %server1% -pw %password% -no-antispoof "ssh %User%@%server2% nc -zv 10.xx.xx.xx yyyy" > result.txt 2>&1
ただし、 にパスワードを渡す必要がありますssh
。そのためには、-t
にスイッチを追加してplink
pty を有効にし、 server2 のパスワードを への入力として渡す必要がありますplink
。
echo %password2%|plink -t ...
これにより、ローカル マシンのプロセス リストに server2 のパスワードが表示されることに注意してください。ただし、server1 のパスワードに対して既にこれを実行しているため、おそらく気にする必要はありません。ただし、後者は-pwfile
スイッチを使用して回避できます。そして、前者は、他の種類の入力リダイレクトを使用します。