개발서버 원격 접속해서 사용하기
개발을 하다 보면 내 노트북이 아니라 다른 컴퓨터(예: 클라우드나 사무실 서버, 혹은 집의 Ubuntu 머신) 에 접속해 작업해야 할 때가 많습니다.
이럴 때 쓰는 기술이 바로 SSH(Secure Shell) 입니다.
SSH는 내 컴퓨터(클라이언트) 와 원격 서버(호스트) 사이를 안전하게 연결해주는 통신 규약이에요.
한마디로, “인터넷을 통해 내 터미널을 서버에 연결시키는 보안 통로”입니다.
Ubuntu 같은 서버에 SSH로 접속하면 기본적으로 검은 화면 터미널 환경이 뜹니다.
ssh username@192.168.1.40
이렇게 로그인하면 서버에 접속은 되지만,
터미널 명령만 입력해야 하고
코드 편집 화면이 불편하고
이미지나 미디어 파일을 다루기 어렵습니다.
특히 머신러닝 실험 환경이나 백엔드 서버에서 코드와 데이터를 다루다 보면
“이걸 그냥 내 로컬 VS Code나 Cursor 화면에서 열 수 없을까?”
라는 생각이 들게 됩니다. 그래서 Remote Desktop을 사용해서 접속을 할 수 있지만, 서로다른 OS를 왔다갔다 하면서 작업하는건 단축키 혼선이나 파일/카피 정보 공유로 인해서 뭔가 많이 복잡해집니다.
Visual Studio Code나 Cursor는 사실상 같은 엔진을 사용합니다.
이 두 IDE는 Remote-SSH라는 확장(extension)을 통해 로컬 에디터에서 원격 서버의 파일을 직접 편집하고 실행할 수 있게 만들어 줍니다.
즉,
코드 편집은 내 맥 화면에서,
실행과 빌드는 원격 Ubuntu에서, 이렇게 분리할 수 있습니다.
① Ubuntu에 SSH 서버 설치
sudo apt update
sudo apt install openssh-server -y
sudo systemctl enable ssh
sudo systemctl start ssh
② Mac에서 SSH 키 생성
ssh-keygen -t edxxxxx -C "your_email@example.com"
③ 공개키를 Ubuntu에 복사
ssh-copy-id ubuntu@192.168.1.xx
비밀번호 한 번 입력하면 그 다음부터는 암호 없이 접속됩니다.
④ 설정 파일 작성 : 터미널에서 아래를 입력합니다. 여기서 HostName과 User는 실제 데이타를 넣어야합니다.
nano ~/.ssh/config
Host myubuntu
HostName 192.168.1.xx
User ubuntu
IdentityFile ~/.ssh/id_edxxxxx
AddKeysToAgent yes
UseKeychain yes
VS Code 또는 Cursor 실행
Cmd + Shift + P → “Remote-SSH: Connect to Host…” 입력
myubuntu 선택
잠시 후 “Setting up SSH Host…” 메시지가 뜨고,
Ubuntu 서버의 폴더 구조와 터미널이 내 에디터 안에 뜹니다.
처음 Remote 모드로 접속하면
좌측 탐색기에 서버 파일 트리가 뜨고
하단 상태바에 [SSH: myubuntu] 표시가 생기며
터미널도 서버 환경으로 바뀝니다.
처음엔 “이게 내 맥인지, 서버인지” 헷갈릴 수 있지만
조금 익숙해지면 로컬과 똑같은 작업 흐름으로 서버 리소스를 활용할 수 있습니다.
노트북보다 서버가 더 빠를 때 (예: GPU 훈련, 대용량 데이터)
회사 내부망이나 클라우드 인스턴스에서 개발할 때
터미널만으로 작업하기 답답할 때
여러 개발자가 한 서버를 공유할 때
SSH는 “연결” 그 자체에 집중된 기술이라면,
Remote-SSH는 그 연결 위에 ‘개발 경험’을 얹은 도구라고 할 수 있습니다.
코드는 서버에서, 인터페이스는 로컬에서 —
이 조합이야말로 지금의 원격 개발 환경을 가능하게 합니다.
![Mac ↔ Ubuntu Remote Development 구조 다이어그램 이미지]
단순히 “서버에 붙는 법”을 넘어,
“서버에서 코드를 개발하는 가장 깔끔한 방법”이 바로 Remote-SSH입니다.
처음엔 복잡해 보여도 한 번 연결만 성공해두면, 그다음부터는 한 줄 명령으로 바로 서버에 접속해
로컬처럼 개발을 이어갈 수 있습니다.