🎯 리눅스 네트워크 설정 및 SSH 접속 가이드
📑 목차
1. VirtualBox 네트워크 어댑터 설정
네트워크 어댑터 유형
VirtualBox에서 제공하는 네트워크 어댑터 유형을 이해하고 목적에 맞게 선택하는 것이 중요합니다.
💡 네트워크 어댑터 유형 비교
📊 어댑터 유형별 특성
| 어댑터 유형 | 인터넷 접속 | 호스트 접속 | 외부 접속 | 용도 |
|---|---|---|---|---|
| NAT | ✅ | ❌ | ❌ | 기본 인터넷 사용 |
| NAT 네트워크 | ✅ | ❌ | 포트포워딩 | 가상머신간 통신 |
| 브리지 | ✅ | ✅ | ✅ | 실제 네트워크 참여 |
| 호스트 전용 | ❌ | ✅ | ❌ | 호스트-게스트 통신 |
🔧 SSH 접속을 위한 네트워크 설정
📋 방법 1: 브리지 어댑터 (권장)
브리지 어댑터 설정
- 가상머신 설정 → “네트워크” 탭
- 어댑터 1: “네트워크 어댑터 사용함” 체크
- 다음에 연결: “브리지 어댑터” 선택
- 이름: 호스트의 네트워크 인터페이스 선택 (Wi-Fi 또는 이더넷)
- 확인 클릭 후 가상머신 재시작
📋 방법 2: NAT + 포트 포워딩
NAT 포트 포워딩 설정
- 가상머신 설정 → “네트워크” → “어댑터 1”
- 다음에 연결: “NAT” 선택
- 고급 → “포트 포워딩” 클릭
- 새 규칙 추가:
- 이름: SSH
- 프로토콜: TCP
- 호스트 IP: 127.0.0.1
- 호스트 포트: 2222
- 게스트 IP: (비워둠)
- 게스트 포트: 22
2. Ubuntu 네트워크 설정
💡 네트워크 인터페이스 확인
📋 네트워크 상태 점검
# 네트워크 인터페이스 확인
ip addr show
# 또는
ifconfig
# 네트워크 연결 상태 확인
ping -c 4 google.com
# 라우팅 테이블 확인
ip route show🔧 고정 IP 설정 (선택사항)
📋 Netplan을 통한 고정 IP 설정
고정 IP 설정 과정
- 네트워크 설정 파일 편집
- IP 주소, 게이트웨이, DNS 설정
- 설정 적용 및 확인
💻 Netplan 설정 예시
# /etc/netplan/01-network-manager-all.yaml 편집
sudo nano /etc/netplan/01-network-manager-all.yaml
# 설정 내용 (브리지 어댑터용)
network:
version: 2
renderer: networkd
ethernets:
enp0s3:
dhcp4: no
addresses:
- 192.168.1.100/24
gateway4: 192.168.1.1
nameservers:
addresses: [8.8.8.8, 8.8.4.4]
# 설정 적용
sudo netplan apply3. SSH 서버 설치 및 설정
💡 OpenSSH 서버 설치
📋 SSH 서버 설치 과정
# 패키지 목록 업데이트
sudo apt update
# OpenSSH 서버 설치
sudo apt install openssh-server -y
# SSH 서비스 상태 확인
sudo systemctl status ssh
# SSH 서비스 활성화 (부팅 시 자동 시작)
sudo systemctl enable ssh🔧 SSH 보안 설정
📋 SSH 설정 파일 편집
SSH 보안 강화
- 설정 파일 백업
- 포트 변경 (선택사항)
- 루트 로그인 비활성화
- 비밀번호 인증 설정
💻 SSH 설정 파일 수정
# SSH 설정 파일 백업
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.backup
# 설정 파일 편집
sudo nano /etc/ssh/sshd_config📊 주요 보안 설정
# /etc/ssh/sshd_config 주요 설정
Port 22 # 기본 포트 (변경 가능)
PermitRootLogin no # 루트 로그인 비활성화
PasswordAuthentication yes # 비밀번호 인증 허용
PubkeyAuthentication yes # 공개키 인증 허용
X11Forwarding no # X11 포워딩 비활성화
MaxAuthTries 3 # 인증 시도 횟수 제한🔄 SSH 서비스 재시작
# 설정 문법 검사
sudo sshd -t
# SSH 서비스 재시작
sudo systemctl restart ssh
# 방화벽 설정 (필요시)
sudo ufw allow ssh
sudo ufw enable4. 호스트에서 SSH 접속
💡 SSH 클라이언트 접속
📋 방법 1: 브리지 어댑터 접속
# Ubuntu에서 IP 주소 확인
ip addr show
# macOS에서 SSH 접속
ssh username@192.168.1.100📋 방법 2: NAT 포트 포워딩 접속
# NAT + 포트 포워딩 사용시
ssh username@localhost -p 2222
# 또는
ssh username@127.0.0.1 -p 2222🔧 SSH 키 기반 인증 설정
📋 SSH 키 생성 및 설정
키 기반 인증 설정
- 호스트에서 SSH 키 생성
- 공개키를 게스트로 복사
- 비밀번호 인증 비활성화 (선택)
💻 SSH 키 설정 명령어
# 호스트(macOS)에서 SSH 키 생성
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
# 공개키를 Ubuntu로 복사
ssh-copy-id username@192.168.1.100
# 또는 NAT 사용시
ssh-copy-id username@localhost -p 2222
# 키 기반 인증 테스트
ssh username@192.168.1.100⚙️ SSH 접속 편의성 향상
📋 SSH 설정 파일 (.ssh/config)
# ~/.ssh/config 파일 생성/편집
nano ~/.ssh/config
# 설정 내용
Host ubuntu-vm
HostName 192.168.1.100
User username
Port 22
IdentityFile ~/.ssh/id_rsa
Host ubuntu-vm-nat
HostName localhost
User username
Port 2222
IdentityFile ~/.ssh/id_rsa
# 사용법
ssh ubuntu-vm🔍 연결 테스트 및 문제 해결
💻 연결 확인 명령어
📋 네트워크 연결 테스트
# 핑 테스트 (호스트에서)
ping 192.168.1.100
# 포트 연결 테스트
telnet 192.168.1.100 22
# 또는
nc -zv 192.168.1.100 22
# SSH 상세 연결 로그
ssh -v username@192.168.1.100🚨 일반적인 문제 및 해결방법
📊 트러블슈팅 가이드
| 문제 | 원인 | 해결방법 |
|---|---|---|
| 연결 거부 | SSH 서비스 미실행 | sudo systemctl start ssh |
| 타임아웃 | 네트워크 설정 오류 | IP, 방화벽 설정 확인 |
| 인증 실패 | 잘못된 인증 정보 | 사용자명, 비밀번호 확인 |
| 포트 접속 불가 | 포트 포워딩 설정 오류 | VirtualBox 포트 설정 재확인 |
💻 로그 확인 명령어
# SSH 로그 확인 (Ubuntu)
sudo journalctl -u ssh
sudo tail -f /var/log/auth.log
# 네트워크 인터페이스 재시작
sudo systemctl restart networking
sudo netplan apply🎯 고급 활용
설정 완료 후 다음 기능들을 활용할 수 있습니다:
- SCP/SFTP: 파일 전송
- 포트 포워딩: 서비스 접속
- SSH 터널링: 보안 연결
- VS Code Remote: 원격 개발 환경
관련 가이드:
- 리눅스_개발환경_구축_가이드 - 개발 도구 설치
- Docker_컨테이너_관리_가이드 - 컨테이너 환경 구성