Search
Duplicate

외부에서 ssh로 코딩하기!

간단소개
뭐? 노트북을 안들고 다녀도 된다고?!
팔만코딩경 컨트리뷰터
ContributorNotionAccount
주제 / 분류
Shell
Vim
Scrap
태그
ssh
공유기
9 more properties

ssh 연결하기!

ssh 연결의 장점 및 글을 작성하게 된 이유

: ssh는 원격을 하기위한 하나의 프로토콜이라고 간단하게 생각하면 됩니다. ssh로 원격 접속을 하기 위해서는 먼저 원격 서버가 필요합니다. 위의 이미지 사진들이 아마존이나 구글에서 제공하는 서버입니다. 아마존의 경우는 학생에게 1년간 무료 서버를 제공해주고, 구글은 성능을 낮게 설정하여 무료서버를 제공해줍니다.
하지만 이러한 서버는 결국 기간의 한계가 있고, 사용의 제한이 있습니다. 그래서 집에 있는 컴퓨터를 원격 서버로 사용할 수 있는 방법에 대해 설명해보고자 합니다.
: 가정에 있는 컴퓨터를 원격 서버로 해놓으면 아이패드로도 ssh로 원격 서버에 접속하여 같은 환경에서 코딩을 할 수 있게 됩니다. 이렇게 세팅을 해놓으면 굳이 노트북을 들고 다니지 않아도 키보드의 아이패드만으로도 미니멀 라이프를 즐길 수 있습니다.
제가 원격서버를 세팅할 당시 워낙 자료들이 분산되어있고, 정확하게 나와있는 곳이 없어서 시간이 많이 걸리게 되었습니다 ㅠㅠ 그래서 팔만코딩대장경분들의 시간을 줄여드리고자 작성하게 되었습니다.
먼저 42 카뎃분들이 많이 사용하시는 Mac을 중점적으로 설명드리고, WSL은 추후에 다른 페이지로작성하도록 하겠습니다.

Mac

1.
설정 메뉴 → 공유 클릭! (영어 버전 : sharing)
2.
Remote login 활성화 → 내 디스크 모든 권한 부여
3.
ssh 연결 명령창 확인
: 위 사진대로 설정을 완료하면 맥은 이제 ssh 연결을 사용할 수 있는 상태가 됩니다. 따라서 같은 와이파이 내에 있는 다른 기기로 해당 명령어를 치면 접속할 수 있습니다.
(같은 와이파이 망 윈도우 컴퓨터로 Mac ssh 접속
: 하지만 저희는 같은 와이파이 내에서 기기를 접속하는 것이 목적이 아닌 외부에서 ssh를 통해 접속하는 것이 목표입니다! 그래서 제가 아래에 작성한 ‘외부 연결하기‘로 넘어가셔서 진행하시면 됩니다.

외부 연결하기

셋팅은 완료했지만 외부에서는 접속이 되지 않습니다 ㅠㅠ 그럼 어떻게 해야할까요?
⇒ 외부 접속이 안되는 이유는 공유기의 방화벽이 여러분을 가로막고 있기 때문입니다! 그러므로 공유기의 포트를 열어줘야 합니다!
1.
공유기 설정 사이트 접속
: 먼저 각자 공유기의 설정 홈페이지를 들어갑니다. 저는 iptime공유기를 사용 중이라 이를 기반으로 설명해드리도록 하겠습니다.
2.
네트워크 카테고리 클릭!
: 공유기의 포트를 열어주기전에 우리는 어떤 아이피의 포트를 열어놓을지 선택해야 합니다. 하지만 아이피의 경우 컴퓨터가 꺼지거나, 와이파이가 다시 연결될 때마다 ip주소가 계속 바뀌게 됩니다. 그러므로 계속 ip가 바뀔 때마다 공유기 설정 사이트에 가서 바뀐 ip의 포트로 새로 열어줘야 한다는 번거로움이 있습니다.
따라서 이 부분을 해결하고자 아이피를 고정하는 것입니다. 아이피를 고정하고, 고정된 아이피의 포트를 열어준다면 우리는 이제 따로 설정없이 컴퓨터를 켜놓으면 ssh접속이 가능한 것 입니다.
3.
ip 고정하기
: 위의 사진과 같이 현재 연결되어 있는 기기들의 리스트가 밑에 나오게 됩니다. 그래서 내가 원하는 기기를 체크하고 추가를 하게 되면, 화살표 위치대로 고정된 ip리스트로 이동하게 됩니다.
4.
포트 포워딩
: 포트 포워딩은 아까 말했듯이 아이피의 포트를 열어놓아서 외부에서 접속하더라도 허용할 수 있도록 해준 규칙입니다. 밑에 설정창에 다음과 같이 입력을 하시면 됩니다.
Rule Name : 규칙 이름
Interal IP : 연결할 ip
Protocol : TCP
External Port : 2222 (보안을 위해 주로 쓰는 ssh 포트)
Internal Port : 22 (ssh 디폴트 포트)
: 규칙이름의 경우는 사용자가 원하는 대로 입력해주시면 됩니다. 그리고 ip는 아까 고정해놓은 ip를 적게 되는데, 만약 고정하지 않았다면 바뀐 ip를 계속 갱신해줘야하는 번거로움이 있습니다. 외부 포트는 2222 포트를 사용하게 되는데, 원래는 22 포트를 사용해도 되지만 보안상으로 이유로 2222포트를 사용하게 됩니다. 2222를 사용하게 되면 왜 보안이 생기는 지 쉘 명령어로 보여드리겠습니다.
5.
터미널 쉘 명령어
(내부망에서 연결)
ssh (User Name)@192.168.0.X -p 22 ssh (User Name)@192.168.0.X
Shell
복사
: 위의 쉘 명령어와 같이 기본적으로 ssh는 따로 설정은 안했다면 22포트로 설정되어있습니다. 그래서 접속을 할 때 굳이 포트를 명시안해도 접속을 할 수 있습니다. 하지만 이를 이용하여 허용되지 않는 사용자도 접속을 시도할 수 있으므로 외부 포트는 2222로 열어줍니다.
이렇게 설정을 하면 -p 2222 라는 옵션을 추가하지 않았을 때 연결이 불가능합니다. 이는 포트를 사용자가 임의로 설정하여 쉽게 예상하지 못하도록 하는 보안 방법입니다
(외부망에서 연결)
ssh (User Name)@(공유기 ip) -p 2222
Shell
복사
: 따라서 공유기 포트 포워딩까지 설정을 완료했다면 위의 명령어를 입력하여 해당 ssh에 접속할 수 있게 됩니다. 입력 시 비밀번호를 입력하게 되는데, 컴퓨터 로그인 비밀번호를 입력하면 접속이 가능합니다.
6.
ssh 외부 접속
: 아까와 달리 외부 ip와 허용 포트를 터미널에 입력하여 접속할 수 있음을 확인할 수 있습니다.

Windows (WSL) 연결하기

WSL 설치 공식 문서

: wsl2 설치 관련 노션 정리 페이지는 추후 따로 작성하도록 하겠습니다. 먼저 필요하신 분들은 위 사이트에서 절차에 맞게 하시면 됩니다.

WSL ssh 연결 개념 설명

WSL에서 중요한 포인트 한가지를 먼저 적어놓고자 합니다.
WSL의 경우는 178.XX.XXX이러한 가상 ip로 구성되어있습니다. 그래서 위에서 Mac처럼 공유기 설정에 추가적으로 내부 아이피(192.168.XX.XX)와 가상 아이피(178.XX..)를 연결하는 세팅도 필요합니다.

Mac과 WSL연결 방식 차이

1.
Mac 연결
공유기 ip -> 내부 ip 58.XX 192.XX
Plain Text
복사
2.
WSL 연결
공유기 ip -> 내부 ip -> WSL 가상 ip 58.XX 192.XX 178.XX
Plain Text
복사

WSL SSH

(Link Page 추가 예정)