🎯 리눅스 네트워크 설정 및 SSH 접속 가이드

📑 목차


1. VirtualBox 네트워크 어댑터 설정

네트워크 어댑터 유형

VirtualBox에서 제공하는 네트워크 어댑터 유형을 이해하고 목적에 맞게 선택하는 것이 중요합니다.

💡 네트워크 어댑터 유형 비교

📊 어댑터 유형별 특성

어댑터 유형인터넷 접속호스트 접속외부 접속용도
NAT기본 인터넷 사용
NAT 네트워크포트포워딩가상머신간 통신
브리지실제 네트워크 참여
호스트 전용호스트-게스트 통신

🔧 SSH 접속을 위한 네트워크 설정

📋 방법 1: 브리지 어댑터 (권장)

브리지 어댑터 설정

  1. 가상머신 설정 → “네트워크” 탭
  2. 어댑터 1: “네트워크 어댑터 사용함” 체크
  3. 다음에 연결: “브리지 어댑터” 선택
  4. 이름: 호스트의 네트워크 인터페이스 선택 (Wi-Fi 또는 이더넷)
  5. 확인 클릭 후 가상머신 재시작

📋 방법 2: NAT + 포트 포워딩

NAT 포트 포워딩 설정

  1. 가상머신 설정 → “네트워크” → “어댑터 1”
  2. 다음에 연결: “NAT” 선택
  3. 고급 → “포트 포워딩” 클릭
  4. 새 규칙 추가:
    • 이름: 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 설정 과정

  1. 네트워크 설정 파일 편집
  2. IP 주소, 게이트웨이, DNS 설정
  3. 설정 적용 및 확인

💻 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 apply

3. 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 보안 강화

  1. 설정 파일 백업
  2. 포트 변경 (선택사항)
  3. 루트 로그인 비활성화
  4. 비밀번호 인증 설정

💻 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 enable

4. 호스트에서 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 키 생성 및 설정

키 기반 인증 설정

  1. 호스트에서 SSH 키 생성
  2. 공개키를 게스트로 복사
  3. 비밀번호 인증 비활성화 (선택)

💻 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: 원격 개발 환경

관련 가이드: