방화벽 뒤에 기계가 있습니다. 내 컴퓨터이고 SSH를 설정했지만 완전히 방화벽으로 설정되어 있습니다. 내 솔루션은 netcat 사용에 실패할 경우 cron 기반으로 설정된 역방향 쉘을 사용하여 다시 연결하는 것이었습니다. 명령은 bash -i >& /dev/tcp/myhostname.duckdns.org/10000 0>&1
및 내 로컬 컴퓨터에 있습니다 nc -l 10000
. 명령을 사용하여 개인 VPN에 연결하도록 지시할 수 있었기 때문에 지금까지는 이것이 효과가 있었습니다. 어떤 이유로 해당 명령이 작동하지 않습니다. 따라서 생성된 bash 쉘을 통해 "로그인"할 수 있지만 Pseudo-terminal will not be allocated because stdin is not a terminal.
해당 시스템에 SSH 키를 설정한 적이 없고 비밀번호로 로그인할 수 없기 때문에 내 컴퓨터로 다시 SSH를 통해 연결할 수 없습니다. .
그래서 netcat을 사용하여 솔루션을 찾으려고 노력했지만 성공하지 못했습니다. 내가 구상하고 있는 것은 다음과 같습니다.
[서버] ---netcat--> [내 컴퓨터:포트1]
그래서 SSHD 서버에 로그인하고 수정이 필요한 모든 것을 수정하기 위해 그것을 피기백할 수 있습니다. 그러나 나는 그것을 달성하는 netcat 명령을 알아낼 수 없습니다. 도움이 필요하세요?
답변1
나머지 인터넷과 나 자신에 대한 답을 찾았습니다. netcat만으로 포트 전달을 수행하는 방법은 다음과 같습니다(OS X El Capitan에서 작동 확인됨).
(수신) 방화벽 뒤의 서버에서:
nc localhost 22 >& /dev/tcp/<your-hostname>/<open port on local computer, i.e. 9000> 0>&1
로컬 컴퓨터에서:
cd /tmp; mkfifo backpipe
nc -l 9000 0<backpipe | nc -l 9001 | tee backpipe
로컬 컴퓨터에서 별도의 터미널:
ssh localhost -p 9001