-
[서버관리] ssh reverse tunneling 설정 후 연결이 안될 때개발 이야기 2020. 8. 27. 09:34
SSH Reverse Tunneling?
ssh reverse tunneling에 대한 간략한 개념은 아래와 같다.
아래처럼 제한된 환경에 있는 호스트 C를 가정해 보자.
A ====== B === ( === C )
C 가 방화벽이나, IP 유동성 등 여러가지로 제한된 경우, A 또는 B에서 C로의 접속이 대부분 불가능 하다.
이럴 때 B에 ssh server를 두고, C->B 로의 ssh session을 연결해 두고, 이 연결을 통하여 C로의 접속을 가능하게 해 주는 것이 reverse ssh tunneling 의 개념이다.
reverse ssh tunnel을 만들고 운용하는 것은 다음에 기회가 되면 간단히 써 보는 것으로 하고,
설정 한 후에 B의 tunnel port로 접속이 잘 안 되는 경우, 아래의 문제를 살펴볼 필요가 있다.
문제
현상은, A에서 C로의 접속 (B:12345)을 시도하는 경우, 아래와 같은 메시지를 출력하며 접속이 되지 않는 경우이다. (B의 tunnel port는 12345로 가정)
ssh: connect to host B port 12345: Connection refused
이 때, B에서 접속 (localhost:12345)은 잘 되는 것을 확인 할 수 있다.
해결방안
먼저, 방화벽을 의심해 볼 수 있지만 방화벽 문제는 아닐 때 아래의 ssh 서버 설정을 확인 해 볼 수 있다.
ssh 서버 설정을 위한 파일인 /etc/ssh/sshd_config 을 열어 아래 줄을 찾는다.
#GatewayPorts no
이후, 다음 줄 처럼 변경한다.
GatewayPorts yes
이후 B의 ssh 서버를 재 시작 하고, 다시 tunnel을 생성하면 reverse tunnel 연결이 되는 것을 확인할 수 있다.
반응형'개발 이야기' 카테고리의 다른 글
[SVN] SVN 서버에서 저장소 만들기 (0) 2022.10.28 Ubuntu (18.04 LTS)에 비주얼 스투디오 코드 (Visual Studio Code) 설치 (0) 2022.10.27 npm WARN npm npm does not support Node.js v10.15.2 (0) 2020.04.15 라즈베리파이 자동 로그인 유저 변경 (0) 2020.04.15