클라이언트와 호스트가 동일한 시스템에 있을 때 SSH는 어떻게 작동합니까? [폐쇄]

클라이언트와 호스트가 동일한 시스템에 있을 때 SSH는 어떻게 작동합니까? [폐쇄]

나는 도커 컨테이너의 도움으로 내 문제를 설명했지만 이 예는 질문의 나머지 부분과 직교합니다. 실제로 브리지 인터페이스 사용을 허용하는 모든 프로그램이 ssh가능합니다.

저는 포그라운드에서 실행되는 데몬에 의해 생성된 데몬 sshd을 백그라운드에서 실행하는 Docker 컨테이너를 사용합니다 . supervisord나는 설치를 /tmp/.X11-unix컨테이너에 묶지 않고 소켓을 컨테이너에 완전히 노출시키지 않고 X11 전달을 구현하는 안전한 방법으로 주로 ssh를 사용합니다. docker top containername컨테이너를 시작한 후 즉시 사용하면 다음과 같은 결과가 나타납니다 .

UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
root                4732                535                 1                   19:56               ?                   00:00:00            /usr/bin/python /usr/bin/supervisord
root                4745                4732                0                   19:56               ?                   00:00:00            /usr/sbin/sshd

이것은 예상대로 작동합니다. 이제 컨테이너의 포트 22를 호스트의 포트 5000에 노출하고 있습니다. 따라서 ssh -X username@localhost -p 5000. 클라이언트와 호스트가 서로 다른 컴퓨터이고 서로 다른 네트워크에 있을 때 ssh가 어떻게 작동하는지 알고 있지만 클라이언트와 호스트가 동일한 컴퓨터일 때 몇 가지 문제가 있습니다(제 경우 클라이언트는 일반 시스템이고 호스트는 일반 시스템의 컨테이너입니다). ). 나는 docker가 내 일반 컴퓨터의 물리적 네트워크 장치와 내 컴퓨터의 가상 네트워크 장치 사이에 브리지를 생성한다는 것을 알고 있습니다.

  1. 하지만 일반 기계와 컨테이너는 정확히 어떻게 서로 통신합니까? 브리징 장치에서 할당한 IP 주소를 통해 사용하고 통신합니까?

  2. 이 프로세스에 관련된 포트는 어떻게 IP 주소를 사용할 필요를 없애나요?

  3. 클라이언트와 호스트가 동일한 시스템에 있고 방금 설명한 방식으로 구성되었을 때 ssh를 사용하는 가장 효율적이고 권장되는 방법이 있습니까?

광범위한 인터넷 검색으로는 충분한 답변을 얻지 못했습니다. 그렇다고 해서 그런 사이트가 존재하지 않는다고 단언할 수는 없습니다!

관련 정보