DEV Community

loading...

SSH -b 옵션

Ukjin Yang
I'm a freelance full stack developer, from hell.
・1 min read

일단, 한국에서 ssh를 검색할 때, -b 옵션에 대한 설명을 찾으려고 하면 없을 것이다.
왜냐면 그나마 최근에 생긴 옵션이다 보니 -b 옵션이 빠져있는 설명서가 대부분이고, 만약 있다고 해도 잘 안 쓰다 보니 그저 옵션에 대한 설명에서 끝나는 경우가 대부분이다.

만약 네 컴퓨터에 2개 랜선이 연결되어 하나는 외부망, 하나는 내부망을 연결한다고 치자.
대부분이라면 route 명령어를 걸어 특정 IP를 접속할 때, 특정 인터페이스를 거치도록 세팅할 것이다. 예를 들면, 192로 시작하면 내부망, 그 외 라우팅 설정 안 하면 외부망으로.

그럼 리눅스 환경에서, 2개의 네트워크 환경이 구축되어 있다고 치자. 하나는 외부망, 하나는 내부망 연결되어 있는데, root 권한이 없어 route 설정이 곤란하지만, 내부망에 있는 쉘에 접속해야 하는 상황이라면 어떻게 할 것인가?

물론 대부분 root 권한이 있는 관리자에게 요청하여 라우팅을 세팅해 줄 것이다.
만약 그것조차 어렵다면?

SSH-b 옵션이 제공되는데, 완전히 옛날 리눅스가 아닌 이상 이 옵션은 제공할 것이다.
-b 옵션에 대한 설명은 아래와 같다.

-b bind_address
Use bind_address on the local machine as the source address
of the connection. Only useful on systems with more than
one address.

-b 지정 주소
현재 컴퓨터에 설정한 [지정 주소] 를 통해 연결한다.
시스템에서 복수 주소를 가지고 있을 경우에 유용하다.

흐음... 언뜻 보면 설명도 꽤 불친절해 보인다.
바로 이 옵션을 사용할 것이다.

사용법은 간단하다. -b 옵션 뒤에 니 컴퓨터에 세팅된 IP를 입력하면 된다.
예를 들어 '내부망' 인터페이스에 '192.168.0.123' IP를 할당받았고, 그 네트워크 안에 있는 '192.168.0.12' IP를 통해 쉘 접속하려고 한다면,

ssh -b 192.168.0.123 nebumang@192.168.0.12
Enter fullscreen mode Exit fullscreen mode

이렇게 쓰면 된다. 물론 굳이 -b 안 써도 접속 되긴 하지만, 예를 든 거다.
이럴 때 유용하다. 니가 192.168.0.123 IP를 할당받았는데, 내부망 네트워크인 192.168.0.1 에서는 192.168.10.0 계열의 IP에 접근할 수 있다.
하지만 192.168.10.0 에 접근하고자 한다면, 보통은 라우팅을 써야 하지만, root 권한이 필요하기 때문에 라우팅 명령어로 등록할 필요 없이 아래와 같이 쓸 수 있다.

ssh -b 192.168.0.123 nebumang@192.168.10.12
Enter fullscreen mode Exit fullscreen mode

그러면 내부망으로 할당받은 '192.168.0.123' IP를 통해 '192.168.10.12' IP로 쉘 접속을 시도할 것이다.

자. 설명은 끝이다. -B 옵션도 있는데 얘는 아예 인터페이스 ID를 지칭한다. 예를 들어 내부망 인터페이스 ID 가 eth1 이라 치면 -B eth1 이렇게 하면 된다. 기능은 -b와 동일하다. 하지만 이건 좀 더 최신 옵션이기 때문에 -b 옵션은 있으나 -B 옵션이 없는 환경이 있을 수 있다.

끗.

Discussion (0)