ssh의 ProxyCommand 기능을 사용하는 데 익숙하며 여러 요새 호스트를 통해 홉하여 최종 호스트에 효율적으로 도달 할 수 있습니다. 그러나 백엔드에서 실제로 어떻게 작동하는지 이해할 수없는 것 같습니다.
예를 들어. 다음 구성 파일이 있습니다.
Host final
Hostname final.com
Port 22
AgentForwarding yes
User guestuser
ProxyCommand "ssh user@bastion.com -W %h:%p"
호스트에 연결하는 경우에 연결하기 final
전에 ProxyCommand가 실행 된다는 것을 알고 final.com
있습니다. 그러나 나는 여전히 연결 순서를 이해하지 못하는 것 같습니다.
그리고 옵션 -W %h:%p
은 무엇을합니까? netcat 기능이며와 비슷하다는 것을 이해합니다 nc %h %p
.
내가 이해하는 한 일련의 작업이 있습니다. 내가 틀렸다면 알려주세요. 내 예제에서 위에서 지정한 구성 파일을 사용합니다.
- 사용자가 입력
ssh final
- bastion.com에 대한 ssh 연결이 작성되었습니다.
- netcat 터널은 bastion.com에서 final.com의 포트 22로 만들어집니다. netcat의 stdin은 bastion.com과의 연결에서 얻은 쉘에 연결됩니다.
- 이제 시스템에서 final.com으로 연결되었습니다. 이 연결의 첫 절반은 시스템에서 bastion.com으로의 ssh 연결입니다. 이 연결의 후반부는 bastion.com에서 final.com으로 연결되는 netcat 터널입니다.
- 이제
ssh final
명령은 위의 연결을 프록시로 사용하고이 기존 연결을 통해 데이터를 터널링합니다.
또한이 기술이 ssh stacking 으로도 알려져 있는지 알고 싶습니다 .
줄 바꿈 추가