라즈베리 파이를 선 없이 다루기
지금까지는 라즈베리 파이에 모니터, 키보드, 마우스를 직접 연결해 사용했습니다. 이제부터는 라즈베리 파이를 작은 서버처럼 다룹니다. 책상 위가 아니라 창가, 현관, 거실, 작업실 한쪽에 놓고 다른 컴퓨터에서 접속해 관리하는 방식입니다.
원격 접속은 긴 리모컨과 비슷합니다. SSH는 글자로 명령을 내리는 리모컨이고, VNC나 원격 데스크톱은 화면까지 가져오는 리모컨입니다. 지난 장에서 만든 센서 장치를 네트워크에 연결하면, 라즈베리 파이 앞에 가지 않고도 센서값을 확인하고 코드를 고칠 수 있습니다.
이번 장의 목표는 네 가지입니다.
SSH로 터미널에 접속하기
VNC, Raspberry Pi Connect, 원격 데스크톱 중 필요한 방식으로 그래픽 화면 사용하기
라즈베리 파이의 IP 주소를 안정적으로 찾기
scp,rsync, SFTP로 코드와 데이터 파일 옮기기
주의: 이 장의 실습은 집이나 교실의 같은 공유기 안에서 진행합니다. SSH나 VNC 포트를 인터넷에 직접 공개하지 마세요. 외부 접속은 VPN, Tailscale 같은 사설 네트워크, Raspberry Pi Connect 같은 중계 방식, 방화벽과 키 로그인 설정을 충분히 이해한 뒤 다루는 것이 안전합니다.1
AI 생성 이미지
먼저 라즈베리 파이의 주소 찾기
원격 접속을 하려면 먼저 "어디로 접속할지" 알아야 합니다. 같은 공유기에 연결된 장치들은 보통 192.168.0.x 또는 192.168.1.x 같은 주소를 받습니다. 이 주소를 IP 주소라고 합니다.
라즈베리 파이에서 터미널을 열고 입력합니다.
hostname
hostname -I예상 결과는 다음과 비슷합니다.
pi-study
192.168.0.23첫 줄의 pi-study는 호스트명입니다. 네트워크 안에서 장치를 구분하는 이름입니다. 둘째 줄의 192.168.0.23은 현재 IP 주소입니다.
hostname -I는 라즈베리 파이가 가진 IP 주소를 짧게 보여 줍니다. 유선랜과 무선랜을 동시에 연결했거나, IPv6 주소까지 함께 표시되는 환경에서는 주소가 여러 개 나올 수 있습니다. 초보자라면 처음에는 유선 또는 무선 중 하나만 연결해 확인하는 편이 쉽습니다.
더 자세히 보고 싶다면 다음 명령을 사용합니다.
ip addrwlan0은 무선랜, eth0은 유선랜을 뜻합니다. 출력이 길게 나오지만, 처음에는 inet 192.168...처럼 보이는 줄만 찾으면 됩니다. 127.0.0.1은 자기 자신을 뜻하는 내부 주소이므로 원격 접속 주소로 사용하지 않습니다.
SSH 켜고 터미널로 접속하기
SSH는 Secure Shell의 약자로, 네트워크를 통해 다른 컴퓨터의 터미널에 안전하게 접속하는 방법입니다. Raspberry Pi OS는 보안을 위해 SSH가 기본으로 꺼져 있는 경우가 많습니다. 또한 최근 Raspberry Pi OS는 예전처럼 기본 pi 사용자를 자동으로 만들지 않습니다. 설치할 때 직접 만든 사용자 이름과 비밀번호를 사용해야 합니다.2
라즈베리 파이에서 SSH를 켜는 가장 쉬운 방법은 raspi-config입니다.
sudo raspi-config화면이 열리면 다음 순서로 이동합니다.
Interface Options → SSH → Yes설정을 마친 뒤 SSH 서비스 상태를 확인합니다.
sudo systemctl status sshactive (running)이 보이면 SSH 서버가 실행 중입니다. 상태 화면에서 빠져나오려면 q를 누릅니다. 이제 노트북이나 데스크톱 PC에서 터미널을 열고 접속합니다.
ssh 사용자이름@pi-study.local호스트명 접속이 안 되면 IP 주소를 직접 사용합니다.
ssh 사용자이름@192.168.0.23처음 접속하면 다음과 비슷한 질문이 나올 수 있습니다.
Are you sure you want to continue connecting (yes/no/[fingerprint])?같은 집 공유기 안의 내 라즈베리 파이에 처음 접속하는 상황이라면 yes를 입력합니다. 그다음 비밀번호를 입력하면 라즈베리 파이의 터미널이 열립니다. 비밀번호를 입력할 때 화면에 글자나 별표가 보이지 않아도 정상입니다. 입력한 뒤 Enter를 누르면 됩니다.
접속이 끝났는지 확인하려면 다음 명령을 입력합니다.
hostname
pwdhostname이 라즈베리 파이의 이름으로 나오고, 현재 위치가 /home/사용자이름이면 성공입니다. 접속을 종료할 때는 다음을 입력합니다.
exit비밀번호 로그인과 SSH 키 로그인
처음에는 비밀번호 로그인이 가장 쉽습니다. 하지만 라즈베리 파이를 계속 켜 두고 서버처럼 사용할 계획이라면 SSH 키 로그인을 익히는 것이 좋습니다. 비밀번호 로그인은 문 앞에서 매번 암호를 말하는 방식이고, SSH 키 로그인은 내 컴퓨터에만 있는 전용 열쇠로 들어가는 방식입니다.
먼저 접속에 사용할 PC에서 키를 만듭니다. 이 명령은 라즈베리 파이가 아니라, 라즈베리 파이에 접속하려는 내 노트북이나 데스크톱 PC에서 실행합니다.
ssh-keygen -t ed25519 -C 'raspberry-pi-study'질문이 나오면 처음에는 기본값으로 Enter를 눌러도 됩니다. 그러면 보통 다음 두 파일이 생깁니다.
개인키:
~/.ssh/id_ed25519공개키:
~/.ssh/id_ed25519.pub
개인키는 절대 다른 사람에게 보내면 안 됩니다. 공개키는 라즈베리 파이에 등록해도 되는 열쇠의 자물쇠 부분입니다.
리눅스나 macOS에서는 다음 명령으로 공개키를 복사할 수 있습니다.
ssh-copy-id 사용자이름@pi-study.localWindows에서도 Git Bash, WSL, 최신 OpenSSH 환경에서는 비슷하게 사용할 수 있습니다. 만약 ssh-copy-id 명령이 없다면 공개키 파일의 내용을 라즈베리 파이의 다음 파일에 추가하면 됩니다.
/home/사용자이름/.ssh/authorized_keys직접 추가할 때는 라즈베리 파이에서 다음처럼 폴더와 파일 권한도 맞춰 둡니다.
mkdir -p ~/.ssh
chmod 700 ~/.ssh
nano ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys그다음 다시 접속합니다.
ssh 사용자이름@pi-study.local비밀번호를 묻지 않거나, 키를 만들 때 설정한 암호만 묻는다면 키 로그인이 작동하는 것입니다.
주의: 비밀번호 로그인을 끄기 전에 반드시 새 터미널 창에서 키 로그인이 되는지 확인하세요. 확인하지 않고 비밀번호 로그인을 꺼 버리면 원격으로 다시 들어가지 못할 수 있습니다.
키 로그인이 잘 되는 것을 확인한 뒤에는 보안을 위해 비밀번호 로그인을 끌 수 있습니다.
sudo nano /etc/ssh/sshd_config다음 줄을 찾거나 추가합니다.
PasswordAuthentication no파일 안에 #PasswordAuthentication yes처럼 #로 주석 처리된 줄이 있다면, 새 줄에 위 설정을 명확히 적어 주는 편이 쉽습니다. 저장 후 SSH를 다시 시작합니다.
sudo systemctl restart ssh이 설정은 혼자 쓰는 실습 장비에서는 필수가 아닙니다. 하지만 장기간 켜 두는 장비라면 키 기반 로그인이 더 안전합니다.2
VNC 또는 원격 데스크톱으로 화면 가져오기
SSH는 빠르고 가볍지만 글자 명령만 사용할 수 있습니다. 그래픽 화면이 필요할 때는 VNC나 원격 데스크톱을 사용합니다. VNC는 라즈베리 파이의 데스크톱 화면을 다른 컴퓨터의 창 안에 보여 주는 방식입니다.
다만 Raspberry Pi OS의 버전에 따라 원격 화면 기능의 이름과 내부 방식이 조금 다릅니다. 예전에는 RealVNC를 켜는 흐름이 흔했고, Bookworm 이후의 데스크톱 환경에서는 Wayland와 WayVNC, 또는 Raspberry Pi Connect가 함께 언급됩니다.13 그래서 "VNC가 안 된다"는 상황은 단순히 실수라기보다, 운영체제 버전과 화면 방식이 맞지 않아서 생기는 경우가 많습니다.
가장 먼저 해 볼 방법은 라즈베리 파이의 설정 메뉴에서 원격 화면 기능을 켜는 것입니다.
sudo raspi-config다음과 비슷한 메뉴를 찾습니다.
Interface Options → VNC 또는 Remote Desktop → Enable또는 데스크톱 화면에서 Raspberry Pi Configuration, Control Centre, Remote Access 같은 설정 항목을 통해 켤 수도 있습니다. 메뉴 이름이 책과 조금 달라도 당황하지 말고, "VNC", "Remote Desktop", "Raspberry Pi Connect", "Screen Sharing"처럼 원격 화면과 관련된 항목을 찾으면 됩니다.
설정 후에는 시스템을 최신 상태로 맞춰 둡니다.
sudo apt update
sudo apt upgrade
sudo rebootPC에는 VNC 클라이언트를 설치합니다. RealVNC Viewer, TigerVNC Viewer, Remmina 같은 프로그램을 사용할 수 있습니다. VNC 클라이언트의 주소 입력 칸에는 다음 중 하나를 넣습니다.
pi-study.local
192.168.0.23필요하다면 포트까지 붙여 다음처럼 입력합니다.
pi-study.local:5900
192.168.0.23:5900로그인 계정은 보통 라즈베리 파이의 사용자 이름과 비밀번호입니다. 다만 사용 중인 VNC 서버에 따라 별도의 VNC 비밀번호를 요구할 수도 있습니다. 이럴 때는 화면에 나온 안내를 따르거나, 사용 중인 원격 접속 방식의 설정 화면에서 비밀번호를 다시 지정합니다.
Windows 기본 원격 데스크톱에 익숙하다면 XRDP를 설치해 RDP 방식으로 접속할 수도 있습니다. 하지만 처음에는 라즈베리 파이에 기본으로 제공되는 원격 화면 기능이나 Raspberry Pi Connect부터 확인하는 편이 좋습니다. Raspberry Pi Connect는 브라우저에서 원격 쉘과 화면 공유를 제공하는 공식 서비스이지만, 계정 로그인과 인터넷 연결이 필요할 수 있습니다.1
화면이 작거나 잘리면 라즈베리 파이의 디스플레이 설정에서 해상도를 조정합니다. 모니터를 연결하지 않은 상태에서 해상도가 낮게 잡히거나, 아예 데스크톱 화면이 만들어지지 않는 경우도 있습니다. 이때는 원격 접속 전에 한 번 모니터를 연결해 설정하거나, 원격 접속 설정에서 가상 해상도 또는 headless 해상도를 지정해야 할 수 있습니다.
IP 주소를 고정해야 할까
공유기는 보통 DHCP라는 방식으로 장치에 IP 주소를 자동으로 나눠 줍니다. 편리하지만 라즈베리 파이를 껐다 켜면 주소가 바뀔 수 있습니다. 주소가 바뀌면 ssh 사용자이름@192.168.0.23으로 접속하던 명령이 실패합니다.
초보자에게 가장 안전한 방법은 라즈베리 파이 안에서 고정 IP를 직접 설정하는 것이 아니라, 공유기에서 DHCP 예약을 거는 것입니다. DHCP 예약은 "이 라즈베리 파이에는 항상 이 주소를 주세요"라고 공유기에 등록하는 방식입니다.
먼저 라즈베리 파이의 MAC 주소를 확인합니다. MAC 주소는 네트워크 장치마다 가진 고유 번호입니다.
ip link show wlan0
ip link show eth0link/ether 뒤에 나오는 b8:27:eb:..., dc:a6:32:..., e4:5f:01:... 같은 값이 MAC 주소입니다. 유선으로 접속할 계획이면 eth0의 MAC 주소를, 무선으로 접속할 계획이면 wlan0의 MAC 주소를 공유기에 등록합니다.
공유기 관리자 페이지에서 다음 항목을 찾습니다.
DHCP
주소 예약
IP 할당
LAN 설정
예를 들어 다음처럼 예약합니다.
장치 이름: pi-study
MAC 주소: 라즈베리 파이의 wlan0 또는 eth0 MAC 주소
예약 IP: 192.168.0.50예약 IP는 현재 공유기의 주소 범위 안에 있어야 합니다. 공유기 주소가 192.168.0.1이면 192.168.0.50처럼 같은 앞자리를 쓰는 경우가 많고, 공유기 주소가 192.168.1.1이면 192.168.1.50처럼 맞춰야 합니다. 이미 다른 장치가 쓰는 주소를 고르면 충돌이 날 수 있으니, 공유기 화면에서 사용 중이 아닌 주소를 선택합니다.
저장 후 라즈베리 파이를 재부팅합니다.
sudo reboot다시 접속해 확인합니다.
hostname -I예약한 주소가 보이면 성공입니다.
주의: 라즈베리 파이 내부에서 고정 IP를 잘못 설정하면 네트워크가 끊겨 원격 접속이 막힐 수 있습니다. 처음에는 공유기의 DHCP 예약을 우선 사용하세요.
파일 옮기기: scp, rsync, SFTP
원격 접속을 익히면 코드를 라즈베리 파이에 직접 입력하지 않아도 됩니다. PC에서 편집한 파일을 보내고, 라즈베리 파이가 기록한 센서 데이터를 다시 가져오면 됩니다.
가장 간단한 방법은 scp입니다. scp는 SSH를 이용해 파일을 복사하는 명령입니다. 아래 명령들은 라즈베리 파이가 아니라, 파일을 보내거나 받을 PC의 터미널에서 실행합니다.
PC에 있는 app.py를 라즈베리 파이로 보냅니다.
scp app.py 사용자이름@pi-study.local:/home/사용자이름/projects/라즈베리 파이에 있는 데이터 파일을 PC로 가져옵니다.
scp 사용자이름@pi-study.local:/home/사용자이름/data/temperature.csv .마지막의 .은 현재 PC 터미널 위치를 뜻합니다. 복사할 대상 폴더가 라즈베리 파이에 아직 없다면 먼저 SSH로 접속해 폴더를 만들어 둡니다.
mkdir -p ~/projects ~/data프로젝트 폴더 전체를 자주 동기화한다면 rsync가 편합니다.
rsync -avh --progress ./project/ 사용자이름@pi-study.local:/home/사용자이름/project/여기서 ./project/처럼 끝에 /가 붙으면 폴더 안의 내용이 복사됩니다. /를 빼면 폴더 자체가 들어갈 수 있습니다. 이 차이 때문에 초보자가 파일 위치를 자주 헷갈립니다.
주의:
rsync --delete옵션은 대상 폴더에만 있는 파일을 지울 수 있습니다. 백업 구조를 확실히 이해하기 전에는 사용하지 마세요.
명령어가 부담스럽다면 SFTP를 사용할 수 있습니다. SFTP는 SSH 기반 파일 전송 방식입니다.
sftp 사용자이름@pi-study.local접속 후 사용할 수 있는 기본 명령은 다음과 같습니다.
ls # 라즈베리 파이 폴더 보기
cd # 라즈베리 파이 폴더 이동
lcd # 내 PC 폴더 이동
put app.py
get temperature.csv
exit그래픽 프로그램을 좋아한다면 FileZilla 같은 SFTP 클라이언트에서 호스트를 pi-study.local, 프로토콜을 SFTP, 포트를 22로 입력해도 됩니다. SFTP는 SSH를 사용하므로, SSH 접속이 먼저 정상이어야 합니다.
여러 대의 라즈베리 파이 구분하기
라즈베리 파이가 한 대일 때는 raspberrypi.local만으로도 충분합니다. 하지만 센서용, 카메라용, 웹 서버용으로 여러 대를 쓰기 시작하면 이름을 나눠야 합니다.
호스트명을 바꾸려면 다음 명령을 사용합니다.
sudo hostnamectl set-hostname pi-sensor
sudo reboot재부팅 후 확인합니다.
hostname이제 같은 네트워크 안에서 다음처럼 접속할 수 있습니다.
ssh 사용자이름@pi-sensor.local.local 주소는 mDNS라는 방식으로 동작합니다. mDNS는 같은 로컬 네트워크 안에서 장치 이름을 자동으로 찾아 주는 기능입니다. Raspberry Pi OS에는 이 기능이 보통 준비되어 있지만, 접속하는 PC 쪽에서도 mDNS를 해석할 수 있어야 합니다. macOS와 많은 Linux 배포판은 대체로 잘 동작하고, Windows는 Bonjour나 관련 서비스 설치 여부에 따라 달라질 수 있습니다. .local 이름이 안 잡히면 IP 주소로 접속하거나 공유기 관리자 페이지에서 장치 목록을 확인합니다.
포트도 함께 알아 두면 좋습니다. 포트는 한 장치 안에서 어떤 서비스로 들어갈지 정하는 문 번호입니다.
SSH:
22VNC: 보통
5900RDP: 보통
3389
예를 들어 pi-sensor.local:5900은 pi-sensor라는 장치의 VNC 문으로 들어간다는 뜻입니다. 같은 라즈베리 파이에 SSH와 VNC가 동시에 켜져 있어도 포트가 다르기 때문에 구분할 수 있습니다.
원격 관리 점검표
마지막으로 모니터를 빼기 전에 다음을 확인합니다.
hostname -I로 현재 IP 주소를 확인했다.ssh 사용자이름@호스트명.local또는ssh 사용자이름@IP주소접속이 된다.비밀번호 또는 SSH 키 로그인이 정상 작동한다.
필요한 경우 VNC, Raspberry Pi Connect, 원격 데스크톱 중 하나로 화면 접속이 된다.
공유기에서 DHCP 예약을 설정했다.
scp또는rsync로 파일을 주고받아 보았다.라즈베리 파이 전원 어댑터가 안정적이다.
이 점검이 끝나면 라즈베리 파이는 더 이상 책상 위 컴퓨터에 머물지 않습니다. 센서 옆에 두고, 카메라 옆에 두고, 작은 웹 서버로 켜 두는 장치가 됩니다. 다음 장에서는 이 원격 접속 환경 위에 웹 서버를 올리고, 센서 데이터를 파일과 웹 화면으로 기록해 보겠습니다.
참고
1Raspberry Pi Documentation – Remote access
이 노트는 보도·비평·교육·연구 목적으로 작성되었습니다. 저작권 문의가 있으시면 에서 알려주세요.