카테고리 없음

[Linux 기초] Ubuntu 리눅스 설치부터 SSH 원격 접속까지 - VirtualBox 가이드

맹꽁이+ 2026. 1. 6. 18:25

리눅스는 서버 운영, 클라우드 컴퓨팅, 개발 환경 구축에 필수적인 운영체제로, 1991년 리누스 토발즈가 MINIX를 참조하여 개발한 리눅스는 현재 전 세계 서버의 90% 이상에서 사용되고 있습니다.

안드로이드, 임베디드 시스템 등 다양한 분야에서 활용되고 있기도 합니다.

이번 포스팅 리눅스를 처음 접하는 초보자에게 좋은 글입니다! VirtualBox를 이용한 가상 머신 환경에서 Ubuntu Linux를 설치하고, SSH를 통한 원격 접속 설정까지 단계별로 적었습니다. 또한 리눅스의 기본 구조(Kernel, Shell, Application)와 자주 사용하는 기본 명령어들을 함께 다룹니다.

 

리눅스 학습의 첫걸음으로, 실제 서버 환경과 유사한 CLI(Command Line Interface) 환경에서 시스템을 다루는 방법을 익혀보세요. 가상 머신을 사용하기 때문에 안전하게 학습할 수 있습니다.

이 글에서 배울 내용

  • 리눅스의 개념과 Ubuntu 배포판 이해
  • VirtualBox를 이용한 가상 머신 구축
  • Ubuntu Server 설치 및 초기 설정
  • OpenSSH를 통한 원격 접속 구성
  • 리눅스 기본 명령어와 셸(Shell) 사용법
  • 시스템 종료, 재부팅, Run Level 관리

1. 개요

1) Linux

  • 토발즈가 MINIX 라는 교육용 운영체제를 참조하여 개발
  • Linux는 유닉스 계열의 운영체제
  • Linux = Linus + UNIX
  • UNIX
    • 1969년에 AT&T의 벨 연구소에서 어셈블리어로 처음 개발
    • C와 어셈블리어로 만들어짐
  • 리눅스 계통도
    • 데비안 계열: 우분투 리눅스
    • 레드햇 계열: 페도라, CentOS(Locky), 레드헷 엔터프라이즈
    • 슬렉웨어 계열: SuSE
  • 운영체제의 구조
    • Kernel
      • 운영체제의 핵심
      • 프로세스/메모리/파일시스템/장치 관리 등의 기능 수행
      • 컴퓨터의 모든 자원 초기화 및 제어 기능 수행
      • Linux는 커널의 대부분이 C언어로 개발됨
    • Shell
      • 명령어 해석기
      • 유저가 전달한 명령을 해석해서 커널에 전달하는 역할
    • Application
      • 개발 도구
      • 유틸리티

 

2) Ubuntu Linux

  • 데비안 계열에서 가장 성공한 배포판
  • 가상화
    • 하나의 물리적 컴퓨터에 여러 운영체제를 실행할 수 있게 하는 기술로, 하나의 실제 컴퓨팅 자원(CPU, Memory, Storage, Network 등)을 마치 여러 개 인것처럼 가상으로 쪼개서 사용하거나, 여래개들의 실물 컴퓨팅 자원들을 묶어서 하나의 자원처럼 사용하는 것
    • 가상화 방법
      • VM(Virtual Machine) - 하이퍼 바이저를 이용
      • Container - OS 수준에서 프로세스를 컨테이너로 격리
  • 가상머신
    • PC에 설치되어 있는 운영체제(HOST OS)에 가상의 머신을 생성한 후 여기에 다른 운영체제를 설치(Guest OS) 할 수 있도록 해주는 소프트웨어
    • 종류
가상 머신 HOST OS GUEST OS
VMware Windows, Linux, Mac Windows, Linux, Solaris, Mac OS
Virtual PC Windows Windows, Linux, Solaris
Virtual Box Windows, Linux, Mac OS, Solaris Windows, Linux, Solaris, Mac OS, Open BSD
UTM Mac OS 중에서 Silicon Chip 사용하는 경우 Linux

 

  • Windows의 WSL
    • PowerShell에서 설치를 하면 Ubuntu Linux의 Kernel이 설치돼서 가상화하는 효과를 만들 수 있다.

 

3) 가상 머신(Virtual box)을 이용한 Ubuntu Linux 설치

  • 우분투 리눅스 이미지 다운로드
  • Virtual Box 다운로드 및 설치
  • Virtual Box에 Ubuntu Linux 설치
    • 새로 만들기를 클릭
    • VM Name과 저장할 디렉토리 설정
    • ISO Image에서 다운로드 받은 이미지를 선택
    • 무인 설치를 해제(Proceed with Unattended Installation)
    • 다음을 누르면 메모리와 CPU를 설정: 쿠버네티스 마스터 노드는 CPU 코어 수가 2개 이상이어야 합니다.
    • 디스크 사이즈 설정
    • 다음을 누르면 요약이 나오고 완료를 클릭
    • VM이 생성됨
    • VM을 시작하면 설치 진행
    • 언어 선택: 서버 버전에는 한국어가 없음
    • 기본 NIC의 이름과 IP 설정 방법 확인
    • Proxy 설정 확인
    • 디스크 설정
    • 파일시스템 설정
    • 컴퓨터 이름 과 유저 설정
    • Ubuntu Pro 업데이트 여부 확인 - 패스
    • SSH Server 설치 및 실행 여부
    • 유틸리티 설치 여부
    • 재부팅을 하고 로그인
  • Windows에 SSH 서버에 접속하기 위한 프로그램 설치
    • putty 나 Open SSH 클라이언트를 많이 사용

 

 

4) Ubuntu Server에 Open SSH를 설치해서 원격 접속

  • openssh-server 설치
sudo apt update
sudo apt install openssh-server
  • ssh 서비스 실행 및 확인
sudo systemctl start ssh
sudo systemctl status ssh
  • 방화벽에서 포트 개방
sudo ufw allow ssh
  • Linux의 IP 확인: 10.0.2.15
hostname -I
  • 호스트 컴퓨터의 IP 확인: 192.168.201.16
    • 윈도우즈가 아닌 Mac의 경우 설정에서 네트워크를 확인하거나 ifconfig 명령
ipconfig
  • Virtual Box에서 NAT 설정
    • Virtual Box에서 [설정] - [네트워크]
    • 포트포워딩을 눌러서 추가 버튼을 누르고 설정
      이름은 아무거나 하면 되고 호스트 주소는 192.168.201.16 게스트 주소는 10.0.2.15 게스트 포트는 22 호스트 포트는 정할 수 있는데 저는 22
  • 접속
ssh 계정@호스트IP -p 호스트포트번호

 

 

5) 종료

  • GUI 경우는 오른쪽 상단의 아이콘을 클릭해서 컴퓨터끄기/로그아웃 선택
  • 터미널에서 종료
poweroff
shutdown -P now
halt -p
init 0
  • shutdown을 이용한 종료
shutdown -P +숫자: 숫자 분 이후에 종료
shutdown -r 시간: 시간에 종료
shutdown -k +숫자: 접속된 모든 사용자에게 숫자 이후에 종료된다는 메시지가 전송되지만 종료되지 않음
shutdown -c: 예약 취소

 

 

6) 재부팅

  • reboot
  • shutdown -r now, init 6

 

7) Run Level

  • 시스템을 가동하는 방법으로 init 명령과 함께 사용
  영문 모드  
0 Power off 시스템 복구 모드로 단일 사용자 모드
1 Rescue 사용하지 않음
2 Multi-User 텍스트 모드
3 Multi-User 사용하지 않음
4 Multi-User 그래픽 모드
5 Graphical  
6 Reboot  

 

 

8) 명령어 입력 및 실행

  • Shell
    • 사용자가 입력한 명령을 해석해서 커널로 전달하거나 커널의 처리 결과를 사용자에게 전달하는 역할을 수행하는 구성요소
    • Server의 텍스트 모드나 X Windows(GUI)의 터미널에서 사용
  • 프롬프트
    • 슈퍼 사용자면 $ 대신에 #
    • 로그인하면 보여지는 셀을 Logic Shell이라고 합니다.
    • 로그인 쉘을 확인하는 방법은 echo $SHELL
    • 명령을 사용하는 방법
      • 직접 입력해서 결과를 바로 확인하는 방식 - 대화식
      • 미리 파일에 기록해주고 그 파일을 SHELL에게 넘겨서 한꺼번에 수행하는 방식
      • ~: 사용자의 홈 디렉토리(~의 자리는 현재 디렉토리를 나타냄)
  • 명령행 편집
    • 커서 이동: CTRL + b(뒤로),  CTRL  + f(앞으로) , CTRL + b(뒤로),  CTRL + f(앞으로), 
  • 명령행 작성 시 발생하는 에러 대처
    • 키보드 입력이 안되는 경우: 화면을 잠그는 CTRL +s를 누른 경우이므로 CTRL+q로 화면 표시 잠금 해제
    •  
    • 프롬프트의 문자가 깨지는 경우:  CTRL + l을 눌러서 화면을 클리어
  • 명령의 구조
    • 형식: 명령어 [옵션] [인자]
    • 옵션: - 또는 --로 시작
      • -는 옵션이 한 문자
      • --는 옵션이 단어
      • 옵션은 여러개 사용 가능: ls -a -l
      • 옵션은 대부분 순서가 없음: ls -l -a
      • 옵션이 문자인 경우 결합 가능: ls -al
      • 인자는 명령어를 수행하기 위해서 전달되는 값
      • 각각의 요소는 공백으로 구분
      • [ ] 는 생략 가능
      • | 로 구분된 경우는 선택

명령어 자동 완성

e를 입력하고 Tab을 두 번 누르면  e로 시작하는 모든 명령어가 출력됩니다.

 

 


1. IP:Port

  • IP: 컴퓨터(NIC - Network Interface Card)를 구분하기 위한 주소
  • IPv4
    • 32bit 주소 체계
    • 클래스 별로 용도가 확정
    • 8bit씩 끊어서 10진수로 표기
  • Port: 컴퓨터에서 동작하는 프로세스를 구분하기 위한 번호
    • Known Port: 0~1023
      • 기본 용도가 확정되어 있음
      • 80: HTTP, 443: HTTPS
    • Unknown Port
  • 다른 컴퓨터에 접속: 컴퓨터의 Application에 접속
  • IP config: cmd에 입력하면 IP 주소 출력

 

  • history
    • 위 화살표(CTRL+p)를 누르면 이전 명령을 아래 화살표(CTRL+n)을 누르면 다음 명령을 호출할 수 있음
    • CTRL+ r을 이용하면 이전에 실행한 명령어를 검색할 수 있는데 증분 검색 모드이므로 입력을 할 때마다 현재 입력된 내용을 기반으로 검
    • history라고 직접 입력하면 명령어 수행 내용 출력
    • !!: 직전 명령어
    • !번호: 번호에 해당하는 명령어
    • history -d 라인번호: 명령어 목록에서 삭제
    • history -c: 명령어 목록 전부 삭제
    • 실제 내용은 홈 디렉토리의 .bash_history 파일에 저장 (nano .bash_history)