왜 원격 접속이 필요한가
라즈베리파이를 처음 설치할 때는 모니터, 키보드, 마우스를 연결하는 편이 가장 쉽습니다. 화면을 보며 Wi-Fi를 잡고, 계정을 만들고, 기본 설정을 확인할 수 있기 때문입니다. 하지만 실제 프로젝트에서는 라즈베리파이를 책상 위에 계속 두지 않는 경우가 많습니다.
예를 들어 온습도 측정 장치는 창가나 베란다에 둘 수 있습니다. 카메라 장치는 현관 근처에 둘 수 있습니다. 작은 서버는 공유기 옆에 두고 전원만 연결해 둘 수도 있습니다. 이때 매번 모니터와 키보드를 들고 가서 설정을 바꾸는 것은 번거롭습니다.
그래서 원격 접속이 필요합니다. 원격 접속은 다른 컴퓨터에서 네트워크를 통해 라즈베리파이에 접속해 명령을 실행하고, 파일을 옮기고, 프로그램을 관리하는 방법입니다. 일반적인 흐름은 먼저 라즈베리파이에 운영체제를 설치하고, 모니터와 입력 장치를 연결해 초기 설정을 마친 뒤, Wi-Fi 또는 유선 네트워크에 연결하고, SSH를 활성화하는 순서입니다1. 이렇게 해 두면 라즈베리파이를 원하는 위치에 배치한 뒤에도 다른 컴퓨터에서 유지보수와 업데이트를 할 수 있습니다1.
AI 생성 이미지
로컬 네트워크 이해하기
라즈베리파이에 원격으로 접속하려면 먼저 같은 네트워크 안에 있어야 합니다. 집이나 교실에서 사용하는 공유기에 노트북과 라즈베리파이가 함께 연결되어 있다면 보통 같은 로컬 네트워크에 있는 것입니다.
여기서 몇 가지 용어를 알아두면 접속 문제가 훨씬 덜 어렵습니다.
공유기: 집 안의 여러 기기를 인터넷과 내부 네트워크에 연결해 주는 장치입니다.
IP 주소: 네트워크 안에서 기기를 찾는 주소입니다. 예를 들어
192.168.0.23같은 형태입니다.포트: 한 기기 안에서 서비스별로 나뉜 문 번호입니다. SSH는 보통
22번 포트를 사용합니다.Wi-Fi 연결: 무선이라 배치가 편하지만 신호가 약하면 접속이 끊길 수 있습니다.
유선 LAN 연결: 케이블이 필요하지만 안정적입니다. 서버나 장시간 운영 장치에는 유선 연결이 더 믿을 만합니다.
라즈베리파이에서 현재 IP 주소를 확인하려면 터미널에서 다음 명령을 실행합니다.
hostname -I여러 주소가 보일 수 있지만, 보통 192.168.x.x 또는 10.x.x.x 형태의 주소를 찾으면 됩니다. 더 자세히 보고 싶다면 다음 명령을 사용할 수 있습니다.
ip addr네트워크 연결 자체를 확인할 때는 ping을 사용합니다.
ping raspberrypi.com응답이 계속 표시되면 인터넷 연결이 되는 것입니다. 멈추려면 Ctrl + C를 누릅니다. 만약 응답이 없다면 Wi-Fi 비밀번호, 공유기 연결, 날짜와 시간 설정, 랜 케이블 연결을 차례로 확인합니다.
SSH 활성화하기
SSH는 Secure Shell의 줄임말입니다. 다른 컴퓨터에서 라즈베리파이의 터미널에 접속하는 방법입니다. 원격 접속의 기본은 SSH라고 생각하면 됩니다.
SSH를 켜는 방법은 두 가지가 있습니다. 데스크톱 화면을 사용 중이라면 메뉴에서 설정 도구를 열고 인터페이스 항목에서 SSH를 활성화할 수 있습니다. 터미널에서는 다음 명령을 사용합니다.
sudo raspi-config화면이 열리면 Interface Options 또는 비슷한 항목에서 SSH를 찾아 활성화합니다. 설정을 마친 뒤에는 라즈베리파이의 IP 주소를 확인합니다.
hostname -I예를 들어 IP 주소가 192.168.0.23이고 사용자 이름이 pi라면, 다른 컴퓨터의 터미널에서 다음처럼 접속합니다.
ssh [email protected]처음 접속할 때는 이 장치를 신뢰할 것인지 묻는 메시지가 나올 수 있습니다. 같은 집이나 교실의 라즈베리파이에 처음 접속하는 상황이라면 yes를 입력합니다. 그다음 비밀번호를 입력하면 라즈베리파이 터미널에 들어갑니다.
접속에 성공하면 현재 명령은 내 노트북이 아니라 라즈베리파이에서 실행됩니다.
pwd
ls
python3 --version
vcgencmd measure_temp작업을 끝낼 때는 다음 명령으로 빠져나옵니다.
exitSSH가 익숙해지면 라즈베리파이에 모니터가 없어도 업데이트, 설정 변경, 프로그램 실행을 대부분 처리할 수 있습니다.
sudo apt update
sudo apt full-upgrade단, 업데이트 중에는 전원을 끄지 않아야 합니다.
파일 주고받기: scp와 SFTP
원격 접속을 하다 보면 코드 파일이나 데이터 파일을 옮겨야 합니다. 가장 간단한 방법 중 하나는 scp입니다. scp는 SSH를 이용해 파일을 복사하는 명령입니다.
내 컴퓨터의 test.py 파일을 라즈베리파이 홈 폴더로 보내려면 다음처럼 입력합니다.
scp test.py [email protected]:/home/pi/반대로 라즈베리파이에 있는 파일을 내 컴퓨터로 가져오려면 순서를 바꿉니다.
scp [email protected]:/home/pi/data.csv .마지막의 .은 현재 폴더를 뜻합니다. 폴더 전체를 복사하려면 -r 옵션을 사용합니다.
scp -r project [email protected]:/home/pi/명령어가 부담스럽다면 SFTP 프로그램을 사용해도 됩니다. SFTP는 SSH 기반의 파일 전송 방식입니다. 파일 관리자처럼 왼쪽에는 내 컴퓨터, 오른쪽에는 라즈베리파이 폴더를 보며 파일을 옮길 수 있습니다. 접속할 때 필요한 정보는 보통 다음과 같습니다.
호스트: 라즈베리파이 IP 주소
사용자 이름: 라즈베리파이 계정 이름
비밀번호: 해당 계정 비밀번호
포트:
22
앞 장에서 만든 센서 코드나 카메라 촬영 파일을 원격으로 수정하고 가져오는 데 이 방법이 유용합니다.
그래픽 화면이 필요할 때: VNC와 원격 데스크톱
SSH는 가볍고 빠릅니다. 서버 관리, 파이썬 실행, 파일 확인, 업데이트에는 SSH가 가장 좋습니다. 하지만 그래픽 화면이 필요한 경우도 있습니다. 예를 들어 데스크톱 설정을 바꾸거나, 브라우저 화면을 확인하거나, 초보자가 메뉴를 보며 조작하고 싶을 때입니다.
이럴 때 VNC 같은 원격 데스크톱 방식을 사용할 수 있습니다. VNC는 라즈베리파이의 데스크톱 화면을 다른 컴퓨터에서 보는 방식입니다. 마우스와 키보드도 원격으로 조작할 수 있습니다.
다만 VNC는 SSH보다 무겁습니다. 화면을 계속 전송해야 하므로 네트워크 상태가 나쁘면 느려질 수 있습니다. 그래서 기준을 이렇게 잡으면 좋습니다.
명령 실행, 서버 관리, 코드 실행: SSH
데스크톱 메뉴 조작, 화면 확인: VNC 또는 원격 데스크톱
큰 파일 이동: SFTP 또는 scp
처음에는 SSH를 기본으로 익히고, 꼭 필요할 때만 원격 데스크톱을 사용하는 편이 안정적입니다.
매번 IP 주소를 찾지 않는 방법
라즈베리파이를 재부팅하거나 공유기에 다시 연결하면 IP 주소가 바뀔 수 있습니다. 그러면 매번 hostname -I로 주소를 확인해야 해서 불편합니다. 이 문제를 줄이는 방법은 세 가지입니다.
첫째, 호스트 이름을 사용합니다. 라즈베리파이의 호스트 이름이 raspberrypi라면 같은 로컬 네트워크에서 다음처럼 접속할 수 있습니다.
ssh [email protected]둘째, 공유기에서 DHCP 예약을 설정합니다. DHCP는 공유기가 기기에 IP 주소를 자동으로 나눠 주는 기능입니다. DHCP 예약은 특정 라즈베리파이에 항상 같은 IP 주소를 주도록 공유기에서 정해 두는 방법입니다. 공유기 관리 화면에서 라즈베리파이의 MAC 주소를 찾아 고정된 내부 IP를 배정합니다.
셋째, 라즈베리파이 내부에서 고정 IP를 설정할 수도 있습니다. 다만 초보자에게는 공유기 DHCP 예약이 더 안전합니다. 라즈베리파이 설정을 잘못 바꾸면 네트워크에 접속하지 못하는 상황이 생길 수 있기 때문입니다.
운영 습관도 중요합니다. 프로젝트 노트에 다음 정보를 적어 두면 나중에 큰 도움이 됩니다.
호스트 이름
사용자 이름
내부 IP 주소
SSH 사용 여부
VNC 사용 여부
설치한 주요 서비스
공유기에서 예약한 IP 주소
원격 접속 보안 원칙
SSH와 VNC는 편리하지만, 아무렇게나 열어 두면 위험합니다. 특히 공유기에서 포트 포워딩을 설정해 외부 인터넷에서 접속할 수 있게 만드는 일은 신중해야 합니다. 초보자는 먼저 집 안의 로컬 네트워크에서만 사용하는 것을 권장합니다.
기본 원칙은 다음과 같습니다.
기본 비밀번호를 사용하지 않습니다. 설치할 때 만든 계정에는 반드시 강한 비밀번호를 사용합니다.
필요한 원격 기능만 켭니다. SSH를 쓰지 않는다면 꺼 두고, VNC가 필요 없으면 비활성화합니다.
공개 Wi-Fi에서 무리하게 접속하지 않습니다. 카페나 공공장소 네트워크에서는 장치가 노출될 가능성을 생각해야 합니다.
인터넷에 SSH나 VNC를 바로 공개하지 않습니다. 포트 포워딩은 공격 대상이 될 수 있습니다.
업데이트를 유지합니다. 보안 문제는 업데이트로 해결되는 경우가 많습니다.
포트 개념을 이해합니다. SSH는 보통 22번 포트, VNC는 보통 5900번 계열 포트를 사용합니다. 열려 있는 포트가 많을수록 관리할 것도 많아집니다.
방화벽을 사용하면 외부 접속을 더 제한할 수 있습니다. 라즈베리파이 OS에서 ufw를 설치해 쓰는 경우도 있습니다.
sudo apt install ufw
sudo ufw allow ssh
sudo ufw enable
sudo ufw status단, 방화벽을 켜기 전에 현재 SSH 접속이 허용되어 있는지 반드시 확인해야 합니다. 원격으로 작업 중인데 SSH를 막아 버리면 다시 직접 모니터와 키보드를 연결해야 할 수 있습니다.
원격 관리의 기본 흐름
이제 라즈베리파이를 모니터 없이 운영할 준비가 되었습니다. 기본 흐름은 단순합니다.
라즈베리파이를 Wi-Fi 또는 유선 LAN에 연결합니다.
IP 주소나 호스트 이름을 확인합니다.
SSH를 활성화합니다.
다른 컴퓨터에서
ssh 사용자이름@주소로 접속합니다.필요한 파일은
scp나 SFTP로 옮깁니다.그래픽 화면이 필요할 때만 VNC를 사용합니다.
강한 비밀번호와 업데이트로 보안을 유지합니다.
이 장에서 익힌 네트워크와 원격 접속은 다음 단계의 기반입니다. 라즈베리파이를 작은 서버로 만들거나, 센서 값을 웹 페이지로 보여 주거나, 카메라 파일을 다른 기기에서 확인하려면 결국 네트워크를 통해 접속해야 합니다. 원격 접속에 익숙해지면 라즈베리파이는 책상 위 실습 장치를 넘어 집 안 어디에나 둘 수 있는 작은 컴퓨터가 됩니다.
참고
1Building a Smart IoT Project with Raspberry Pi: 10 Steps to Success
이 노트는 보도·비평·교육·연구 목적으로 작성되었습니다. 저작권 문의가 있으시면 에서 알려주세요.