[Linux] 패스워드 없는 고보안 SSH 키 인증 로그인부터 파이썬 내장 웹 서버, 삼바(Samba) 공유 드라이브까지 완벽 구축 가이드
안녕하세요! 지난 시간에 원격지에서 내 라즈베리파이에 안전하게 접속하는 SSH 및 라즈베리파이 커넥트 가이드에 이어, 오늘은 편리함과 강력한 보안을 동시에 잡을 수 있는 ‘원격 인프라 고도화 작업’을 진행해 보겠습니다.
이번 시간에는 보안 취약점이 많은 FTP를 대체하는 SCP 고속 파일 전송과 더불어, 복잡한 설정 없이 단 3초 만에 웹 브라우저로 파일을 공유하는 파이썬 초간단 웹 서버 팁, ‘마스터 키’ 파일 하나로 자동 로그인하는 SSH 키 기반 인증, 그리고 라즈베리파이를 윈도우 파일 탐색기에서 내 하드디스크처럼 쓰는 삼바(Samba) 네트워크 공유 드라이브 구축법까지 원격 파일 관리 기술을 총정리해 드립니다.
🚫 1. 보안 취약점 덩어리 FTP는 안녕, 이제는 SCP 시대!
많은 분이 서버 간 파일 전송을 위해 전통적인 FTP(File Transfer Protocol)를 떠올리시곤 합니다. 하지만 FTP는 초기 설계 당시 보안 개념이 없었기 때문에, 파일 데이터는 물론이고 계정의 비밀번호까지 암호화되지 않은 평문(Plain Text) 상태로 네트워크에 전송하는 치명적인 약점이 있습니다. 패킷 탈취 공격에 무방비로 노출되는 것이죠.
따라서 리눅스 환경에서는 SSH의 강력한 보안 암호화 터널 위에서 안전하게 파일을 복사하는 SCP(Secure Copy Program)를 표준으로 사용합니다. 문법도 리눅스의 기본 복사 명령어인 cp와 똑같아서 아주 쉽습니다.
① 원격지 라즈베리파이에서 내 PC로 파일 가져오기(Windows PowerShell)
scp pi@192.168.1.253:/home/pi/testfile1 .
- 라즈베리파이 내부에 있는
testfile1을 내 작업 PC의 현재 디렉터리(점.기호가 뜻하는 곳)로 안전하게 다운로드합니다.
② 폴더(디렉터리) 통째로 전송하기
파일이 아니라 폴더 전체와 그 하위 콘텐츠를 재귀적으로 한 번에 복사하고 싶다면 명령어 뒤에 -r 옵션 스위치를 붙여주면 됩니다.
scp -r pi@192.168.1.253:/home/pi/myfolder .
🚀 2. [강력 추천] 설정 필요 제로! 파이썬 3초 완성 초간단 웹 서버 파일 공유
삼바나 SCP 설정을 구성하기가 번거롭고, 지금 당장 라즈베리파이 안의 특정 폴더에 있는 파일들을 다른 PC나 스마트폰으로 빠르게 다운로드하고 싶을 때 쓸 수 있는 치트키 같은 명령어가 있습니다. 바로 파이썬에 기본 내장된 웹 서버 모듈을 활용하는 방법입니다.
① 사용 방법
원격으로 공유하고 싶은 파일이나 폴더가 있는 위치로 터미널에서 이동(cd)한 뒤, 아래 명령어를 한 줄만 입력하면 끝납니다.
# 공유하고 싶은 폴더 위치로 이동 후 실행
python3 -m http.server 8000
② 파일 다운로드하기
명령어를 실행하면 라즈베리파이가 즉시 8000번 포트를 사용하는 임시 웹 서버로 변신합니다. 이제 같은 와이파이망에 연결된 PC나 스마트폰의 웹 브라우저를 열고 주소창에 아래와 같이 입력해 보세요.
http://[라즈베리파이_IP주소]:8000
웹 브라우저 화면에 해당 폴더 내의 모든 파일 리스트가 깔끔한 링크 형태로 나타나며, 원하는 파일을 클릭하기만 하면 즉시 스마트폰이나 PC로 초고속 다운로드할 수 있습니다! 작업을 마친 후 터미널에서 Ctrl + C를 누르면 서버가 즉시 안전하게 종료됩니다.
🔑 3. 비밀번호 타이핑 제로! SSH 키(Key) 인증 로그인 구축
매번 SSH로 접속할 때마다 길고 복잡한 비밀번호를 치는 것은 매우 번거롭습니다. 내 컴퓨터와 라즈베리파이 사이에 암호화된 ‘공개키/비밀키 쌍’을 매핑해 두면, 패스워드 입력 단계를 마법처럼 패스할 수 있습니다.
① 내 PC에서 암호화 키 쌍 생성하기 (윈도우/맥 공통)
접속을 시도할 내 개인 컴퓨터의 터미널(또는 PowerShell)을 열고 아래 명령어를 입력합니다.
ssh-keygen -t rsa -C "my_pi_key"
- 키를 저장할 경로를 물어볼 때는 그냥 엔터(ENTER)를 눌러 기본값을 수락합니다.
② 공개키를 라즈베리파이에 등록하기
내 PC의 공개키(id_rsa.pub) 안의 텍스트 내용을 라즈베리파이의 ~/.ssh/authorized_keys 파일 안에 심어주어야 합니다.
- Mac / Linux 환경인 경우: 명령어 한 줄로 자동 전송 및 등록이 끝납니다.
ssh-copy-id pi@192.168.1.253
- Windows 환경인 경우:
.ssh\id_rsa.pub파일을 메모장으로 열어 텍스트를 전체 복사한 뒤, 라즈베리파이에 일반 SSH로 로그인하여 아래 파일을 열고 맨 아랫줄에 붙여넣기(Ctrl + V)하고 저장합니다.nano ~/.ssh/authorized_keys
③ [Windows 필수 설정] SSH 에이전트 자동 가동 및 등록
윈도우 환경에서는 OS가 내 키 자격 증명을 안전하게 기억하도록 윈도우 PowerShell을 관리자 권한으로 열고 아래 두 명령어를 실행해 줍니다.
sc.exe config ssh-agent start=auto
sc.exe start ssh-agent
# 내가 만든 키를 에이전트에 최종 등록 (일반 유저 권한 탭에서 수행)
ssh-add ~/.ssh/id_rsa
④ [보안 극대화] 일반 패스워드 로그인 원천 차단하기
키 로그인이 잘 되는 것을 최종 확인했다면, 무작위 비밀번호 대입 공격을 막기 위해 패스워드 로그인 기능 자체를 차단합니다.
sudo nano /etc/ssh/sshd_config
아래 항목의 주석 #을 해제하고 no로 수정 후 새로고침(sudo service ssh reload)합니다.
PasswordAuthentication no
📂 4. 라즈베리파이를 내 하드디스크처럼 쓰는 ‘삼바(Samba)’ 공유 폴더
로컬 네트워크망 안에서 대용량 파일을 상시 드래그 앤 드롭으로 주고받기에는 삼바(Samba) 프로토콜을 이용해 윈도우의 ‘네트워크 드라이브’로 연결하는 것이 가장 쾌적합니다.
① 삼바 패키지 설치 및 사용자 패스워드 등록
# 패키지 설치
sudo apt install samba samba-common-bin
# 삼바 전용 접근 패스워드 등록
sudo smbpasswd -a 사용자ID
② 작업 그룹 설정 및 데몬 재시작
설정 파일인 /etc/samba/smb.conf를 열고 윈도우 표준 네트워크 규격인 workgroup = WORKGROUP 문구가 매핑되어 있는지 확인한 후, 삼바 서비스를 재시작합니다.
sudo service samba restart
③ 내 PC에서 확인하기
이제 윈도우 PC에서 ‘파일 탐색기’ ➔ ‘네트워크(Network)’ 탭을 클릭하면 내 라즈베리파이가 나타납니다! 더블클릭 후 방금 설정한 삼바 계정 정보를 입력하면 공유 드라이브 인프라 연동이 완료됩니다.
📝 단 한 줄 핵심 요약 표
| 기술 및 명령어 | 핵심 메커니즘 및 구축 효과 |
|---|---|
python3 -m http.server 8000 |
[가성비 최강] 별도 설정 없이 현재 폴더를 브라우저 다운로드 링크로 임시 개방 |
scp [출발지] [목적지] |
SSH 터널 기반 암호화 파일/폴더 전송 (보안 취약한 FTP 완전 대체) |
ssh-keygen / ssh-copy-id |
비대칭 암호화 키 생성을 통한 패스워드 없는 초고속 원격 로그인 구현 |
sudo smbpasswd -a 계정명 |
윈도우 파일 탐색기에 라즈베리파이를 네트워크 공유 드라이브로 고정 상시 연동 |
🎯 포스팅 마무리
오늘 다룬 내용을 요약하면 다음과 같습니다.
상시 대용량 공유 디렉터리가 필요할 때는 삼바(Samba)를 구축해 두고, 개발 중 안전한 파일 복사에는 SCP를 쓰며, 아무 설정 없이 지금 당장 폰이나 다른 PC로 파일 몇 개를 빠르게 빼내고 싶을 때는 파이썬 내장 서버 모듈(python3 -m http.server)을 실행하면 됩니다.
상황에 맞는 유연한 원격 파일 관리 기법을 활용해 라즈베리파이 스마트 홈 서버의 진가를 100% 느껴보세요! 작업 중 막히는 에러가 발생한다면 언제든 댓글로 남겨주세요. 😊
댓글 남기기