Доброе утро, мне нужно выполнить команду netcat и получить вывод для обработки на моем локальном ПК (windows). Мне просто нужно "подключение хорошее/плохое"
Теперь я использую PuTTY, используя следующий шаг
- Окна -> PuTTY
- PuTTY -> SSH на «Server1» (Linux Suse)
- Оболочка сервера 1 -> SSH на «Сервере 2» (Linux Suse)
- Оболочка сервера2 ->
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
Во-первых, чтобы выполнить ssh
команду на сервере server1, нужно подключиться к серверу 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 и передать пароль сервера2 в качестве входных данных в plink
:
echo %password2%|plink -t ...
Обратите внимание, что это раскроет пароль вашего server2 в списке процессов локальной машины. Но поскольку вы уже делаете это для пароля server1, вы, вероятно, не против. Хотя последнее можно обойти с помощью -pwfile
switch. А первое — с помощью других видов перенаправления ввода.