좋은 아침입니다. netcat 명령을 실행하고 로컬 PC(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
스위치를 사용하면 피할 수 있습니다. 첫 번째는 다른 종류의 입력 리디렉션을 사용하는 것입니다.