MAC에서 Windows 원격접속하기(리눅스 서버 원격 접속, Windows App)
MAC에서 windows에 원격 데스크톱을 연결해야할 일이 생겼다.
그리고 내가 접근해야하는 Windows는 Linux서버에 연결된 내부망을 사용하기 때문에 Linux서버에 원격접속한 다음, 터널링을 통해 접근해야한다. 그래서 접근하고자 하는 경로가 MAC → Linux서버 → Windows 으로 연결된다.

1단계 : MAC → Linux서버 접속
MAC은 기본적으로 리눅스 구조이기 때문에(정확하게 말하자면 UNIX 계열(BSD기반)의 운영체제이기 때문에 리눅스와 유사한 터미널 환경을 공유한다.), Terminal에서 ssh명령어를 사용하여 Linux서버로 접근할 수 있다.
외부에서 접속 가능한 유일한 통로인 Linux서버의 ip를 통해 Linux서버에 접속한다.
* ssh : secure shell
멀리 떨어진 컴퓨터에 보안이 유지된 상태로 접속하기 위한 규칙(프로토콜)
secure(보안) : 주고 받는 모든 데이터를 암호화
shell(쉘) : 접속한 컴퓨터를 명령어로 조종할 수 있는 검은 화면(터미널) 상태
= 멀리 떨어진 컴퓨터에 보안이 유지된 상태로 접속하기 위한 규칙(프로토콜)
2단계 : SSH 터널링
MAC의 터미널에서 명령어를 실행하여 Linux서버를 다리 삼아 MAC과 Windows를 잇는 파이프라인을 설치한다.
즉, MAC과 Window에 모두 연결될 수 있는 리눅스 서버가 중간에서 다리역할을 해주는 것이다.
- MAC : 윈도우가 어디 있는지 모르지만 일단 내 컴퓨터의 3390 포트에 데이터를 보낸다.
- Linux : 맥으로 받은 데이터를 그대로 윈도우의 3389포트에 보낸다.
터널링 없이 VPN, 포트 포워딩(공유기 설정) 등을 통해 연결할 수도 있지만, 보안이나 비용 문제로 SSH Tunneling을 사용하는 것이 좋다. 터널링을 사용하면 윈도우 PC가 외부 인터넷으로부터 숨겨지기 때문에 보안과 암호화 측면에서 강하다.
윈도우 PC(192.168.0.xxx)는 내부망에 있어서 외부에 직접 접속하려고 하면 방화벽이 차단한다. 그러나 리눅스 서버는 외부와 통하는 문이 열려있다. 또한 터널링(SSH)를 사용하면 MAC과 Linux 사이의 데이터가 암호화된다. 중간에 누군가 엿볼 수 없는 비밀 통로가 되는 것이다.
1,2 단계로 나누어 설명했지만 ssh의 특성상 연결된 중간에 터널을 추가하는 것은 매우 어렵다.
그래서 명령어로 한번에 Linux 서버에 연결하면서 ssh를 만들어준다.
ssh -L [포트번호]:192.168.0.xxx:[포트번호] root(서버에서 사용하는 계정)@xxx.xx.xx.xxx -p [포트 번호]
ssh -L 3390:192.168.0.123:3389 jju@212.43.15.321 -p 22

SSH로 Windows 접속이 완료된 상태,
다들 알겠지만 (?) 이 창은 원격 데스크톱 연결을 하는 동안은 닫지 말아야 한다.
3단계 : 터널을 통과하여 접속(Windows App 사용)
맥의 Windows App에서 localhost:3390 (사용자가 정한 포트 번호)로 접속을 시도하면 이 신호가 2단계에서 만든 터널을 타고 내부망에 있는 Windows PC로 쏙 들어가는 원리를 사용한다.
이제 접속하는건 굉장히 쉬운데,

Windows App을 실행하고, 화면 상단 + 버튼 > Add PC를 누른다.

그리고 PC name에 localhost: 설정한 port 번호(MAC이 사용하는 포트 번호)를 입력한다.

그럼 이렇게 저장된다 !
그리고 더블클릭하면 인증되지 않았다고 뜨는데, 정상적인 컴퓨터라는 확신이 있다면 Connect 클릭

그럼 로그인 화면이 나오고 (작은 창으로도 뜬다) 유저 이름, 비밀번호를 통해 접속하면 끝 !

MAC에서 Windows 원격접속 어렵지 않다.
관련 네트워크 지식도 따로 정리해보아야겠다.