집에서 회사, 학교 PC 원격 접속하기 (SSH Tunneling)
집에서 회사, 학교 PC 원격 접속하기 (SSH Tunneling)

집에서 회사, 학교 PC 원격 접속하기 (SSH Tunneling)

설명
내부망 공유기의 포트포워딩 없이, SSH Tunnerling으로 외부망PC에서 내부망 PC를 접속해보자
Last Updated
Last updated March 25, 2023
태그
SSH Tunneling
port forwarding

배경

  • 외부망에서 내부망 PC를 원격 접속하려면, Chrome Remote Desktop, 팀뷰어, 점프데스크톱 등을 사용하면 간단하다.
  • 윈도우 Remote Desktop을 사용하여 원격 접속 하고싶다면, 내부망 공유기에서 포트포워딩 설정해도 간단히 해결 가능하다.
 
  • 아래 방법은 윈도우 Remote Desktop를 통해 원격접속 하고 싶고, 내부망의 공유기 설정을 만지지 못하는 경우(학교, 회사 등)를 위한 해결책이라 할 수 있다.
  • 윈도우 Remote Desktop을 기준으로 작성하였지만 포트번호만 수정하면, 웹서버, DB 등 다른 서비스들 또한 외부에서 접속하도록 응용할 수 있다.
 

준비물

  • 내부망 PC (ex. 학교, 회사 PC 등)
  • 외부망 PC (ex. 개인, 가정 PC)
  • (외부망 PC에 공유기가 있다면) 외부망 PC가 연결된 공유기
 

방법

  • step 바로뒤에 있는 다음 괄호는 해당 작업을 진행해야할 대상이다
 

Step1. (외부망PC / 내부망PC) OpenSSH 설치

  • 내부망 PC에 OpenSSH 클라이언트 설치
  • 외부망 PC에 OpenSSH 서버 설치
 
  1. 윈도우 검색 > 선택적 기능
    1. notion image
  1. 선택적 기능 추가 클릭 후, 내부망 PC는 OpenSSH 클라이언트, 외부망 PC는 OpenSSH 서버를 설치 (필자는 이미 설치되어있다)
    1. notion image
 

Step2. (외부망 PC) sshd_config 파일 수정

  1. powershell을 관리자 권한으로 실행 후, 서비스 시작 및 서비스 자동실행 등록
# 서비스 시작 Start-Service sshd #서비스 자동실행 등록 Set-Service -Name sshd -StartupType 'Automatic' # 참고) 서비스 종료 Stop-Service sshd
  1. C:\ProgramData\ssh\sshd_config파일에 아래 내용 추가
AllowTcpForwarding yes GatewayPorts yes TCPKeepAlive yes
  1. 수정 후 sshd 서비스 재시작
 

Step3. (외부망 PC 공유기) 포트포워딩 설정

💡
PC가 공유기 없이 인터넷에 직접 연결되어 있다면, Step3를 생략하고 Step3 대신에 외부망PC에서 아래 내용 진행 필요하다. 1. sshd_config파일의 기본 포트를 다른 포트로 변경 2. 변경된 포트를 윈도우 방화벽 인바운드 규칙으로 추가
📌
Step3. 내용은 ipTIME 공유기 기준으로 작성되었습니다.
  1. 브라우저에서 192.168.0.1 접속
    1. notion image
  1. 포트포워드 설정
      • 외부 포트는 원하는데로 지정
      • 내부 포트는 22번을 사용
      • 내부 IP주소는 현재 접속된 IP주소를 사용
      notion image
  1. (선택) DDNS 설정
      • 일반적으로 가정/개인 PC는 주기적으로 IP가 변경된다.
      • DDNS는 이러한 유동 IP에 고정된 도메인을 연결시켜 주는 기능
      • 아래 메뉴에서 설정 진행
      notion image
 

Step4. (내부망 PC) ssh를 통해 외부망 PC에 접속

  1. cmd에서 아래 코드 실행
# 내부망 PC의 원격 데스크톱 포트(3389)를 외부망의 {원하는port}로 연결하겠다는 의미 ssh -R {원하는port}:localhost:3389 {외부망PC 계정명}@{외부망PC의 IP 또는 DDNS} -p {Step3에서 설정한 외부포트}
  • {원하는prot}: 외부PC에서 접속할 임의의 Port 원하는데로 지정
  • {외부망PC 계정명}: 외부망 PC의 계정명. 외부망 PC의 cmd에서 whoami로 확인 가능
    • 저는 hanmi이네요
      저는 hanmi이네요
  • {외부망PC의 IP 또는 DDNS}: 외부망 PC의 IP 또는 DDNS를 입력
 

Step5. (외부망 PC) 윈도우 Remote Desktop을 통해 내부망 PC 접속

  1. 원격 데스크톱 실행
    1. notion image
  1. 원격 데스크톱 컴퓨터 창에 localhost:{원하는port} 입력하여 접속
    1. notion image
 

참고자료