3개 시스템(A->B->C)에서 SSH 터널을 실행하는 동안 트래픽 전달을 위해 netcat을 사용하고 있습니다. 호스트 A가 호스트 B에서 실행하는 에이전트 명령은 다음과 같습니다.
/usr/bin/ssh host_B nc localhost 19999
그리고 Host_B:19999와 Host_C:22 사이에는 터널이 있습니다.
netcat이 무엇을 하는지 알고 싶습니다. netcat 로그 파일은 어디에 있습니까? A에서 다음 프록시 명령을 실행해 보았습니다.
/usr/bin/ssh host_B nc -vv localhost 19999 > log.txt 2>&1
하지만 항상 호스트 A에서 "ssh_exchange_identification: 원격 호스트에 의해 연결이 닫혔습니다"라는 메시지가 표시됩니다.
감사해요,
답변1
Netcat은 아무것도 기록하지 않습니다.
netcat의 출력을 파일로 리디렉션하면 해당 출력이 프로세스로 이동해야 하므로 설정이 중단됩니다 ssh
. 리디렉션을 설정하면 원격 호스트에서 보낸 데이터가 log.txt
클라이언트 대신 클라이언트로 전송됩니다. 오류만 기록하려면 를 사용하세요 2>log.txt
.
netcat으로 전송된 모든 데이터를 파일로 덤프하려면 해당 데이터를 복사해야 합니다.
unbuffer tee input.data | nc localhost 19999 | unbuffer tee output.data