동일한 네트워크 세그먼트의 다른 호스트에 로그인 할 수 있어야합니다. 잘못 구성된 호스트에 액세스하는 방법 중 일부는 중간 호스트에 루트가 필요하지만 중간 호스트에 루트가 없어도 액세스 할 수있는 쉬운 방법이 있습니다.
IPv6를 사용하여 호스트에 액세스하는 쉬운 방법
ssh -o ProxyCommand='ssh -W [fe80::42:ff:fe:42%%eth0]:%p user@intermediate-host' root@target-server
위의 명령을 필요로하는 다음의 예 값이 사용 사례에 대한 올바른 값으로 치환되는 : fe80::42:ff:fe:42
, eth0
, user
, intermediate-host
,와 target-server
.
작동 방식에 대한 자세한 설명
ProxyCommand
대상 호스트에 직접 TCP 연결을 열 수 없을 때 사용하는 ssh 기능입니다. 인수 ProxyCommand
는 TCP 연결 대신 stdin / stdout을 사용하는 명령입니다.
-W
단일 포트 전달을 열고 stdin / stdout에 연결하는 데 사용됩니다. 이것은와 잘 어울립니다 ProxyCommand
.
fe80::42:ff:fe:42%%eth0
대상 호스트의 링크 로컬 주소입니다. 이스케이프 문자 로 ProxyCommand
사용 하기 때문에 %
입력 된 ssh 명령은 %%
해당 위치에서 사용해야합니다 . 을 실행하여 세그먼트에서 모든 링크 로컬 주소를 찾을 수 있습니다 ssh user@intermediate-host ping6 -nc2 ff02::1%eth0
.
이 목적으로 IPv6 링크 로컬 주소를 사용하는 것이 모든 최신 시스템에서 기본적으로 활성화되어 있기 때문에 가장 쉬운 방법이며, IPv4 및 IPv6 스택이 잘못 잘못 구성되어 있어도 링크 로컬 주소는 계속 작동합니다.
IPv4로 폴백
잘못 구성된 호스트에서 IPv6가 완전히 비활성화 된 경우 (권장하지 않음) IPv4를 사용해야합니다. IPv4에는 링크 로컬 주소가 없으므로 IPv6이 IPv4를 사용하여 잘못 구성된 호스트에 액세스하는 방식이 더 복잡해져 중간 호스트에 대한 루트 액세스가 필요합니다.
잘못 구성된 호스트가 여전히 기본 게이트웨이를 사용할 수있는 경우 외부에서 호스트에 액세스 할 수 있습니다. 아마도 잘못 구성된 넷 마스크는 스택이 넷 마스크가 포함하는 접두어 외부의 게이트웨이 사용을 거부하여 기본 게이트웨이를 손상 시켰을 수도 있습니다. 실제로이 경우 잘못 구성된 호스트는 192.168.1.8 과만 통신 할 수 있습니다. 이는 현재이 잘못 구성된 호스트에 액세스 할 수있는 서브넷의 다른 IP 주소이기 때문입니다.
192.168.1.8에 로그인 한 경우 거기에서 192.168.1.9로 ssh 할 수 있습니다. 192.168.1.8이 현재 할당되어 있지 않은 경우 루트 액세스 권한이있는 세그먼트의 모든 호스트에 일시적으로 할당 할 수 있습니다.
fe80::42:ff:fe:42
주소는 ...? 잘못 구성된 서버 같아요?