Skip to Content
Suffering builds character
아카이브24.Linux실습서버 접근2.서버 접속 실습

2.서버 접속 실습

온프레미스 환경에서 SSH 공개키 인증 기반 서버 접속 실습

1. 전체 시나리오

강사 노트북: Ubuntu Linux
→ 서버 역할

학생 노트북 Windows/Mac/Linux
→ 서버에 접속하는 클라이언트 역할
(Windows라면 Git Bash나 WSL, Mac/Linux라면 기본 터미널에서 ssh 사용 가능)

목표

  • 학생은 자신의 노트북에서 ssh 접속 시도
  • 강사가 제공한 .pem 키(= 개인키)를 써서 서버에 접속

2. 서버 설정

  1. 서버에 SSH 설치 및 실행

sshd가 설치되어 있는지 확인

terminal
sudo systemctl status ssh

→ Active: active(running)일 경우 설치되어 동작 중이라고 볼 수 있음

설치되어 있지 않을 경우 ssh 서버 설치

terminal
sudo apt update sudo apt install openssh-server -y sudo systemctl enable ssh sudo systemctl start ssh
  1. 서버의 IP 확인
terminal
ip addr show

→ 강의실 공유 네트워크에서 접속할 수 있는 IP를 통해 서버 PC에 접속 가능 예: 192.168.0.50

  1. 실습용 계정 생성
terminal
sudo adduser student

→ 학생들은 student라는 계정을 통해 서버에 접속 가능

3. 서버는 클라이언트가 접근할 수 있도록 키 쌍 생성

  1. 서버에서 키 생성:
terminal
ssh-keygen -t rsa -b 2048 -f mykey.pem

여기서 mykey.pem이 개인키
자동으로 mykey.pem.pub(공개키)도 생성됨

생성된 키 목록 조회

terminal
ls # mykey.pem mykey.pem.pub ...
  1. 공개키를 실습용 계정에 등록
terminal
# 공개키(.pub)를 student 계정의 authorized_keys 파일에 추가 cat mykey.pem.pub >> /home/student/.ssh/authorized_keys

→ SSH 서버는 클라이언트가 로그인할 때 이 파일에 있는 공개키 목록을 확인해서, 개인키와 짝이 맞는지 검증함
즉, 이 키를 가진 사람만 student 계정으로 서버에 들어올 수 있음

terminal
# 해당 파일의 소유자를 student로 변경 sudo chown student:student /home/student/.ssh/authorized_keys

→ SSH는 보안상, 키 파일이 로그인하려는 사용자 본인 소유가 아닐 경우 거부함

terminal
# 파일 권한을 rw------- (읽기/쓰기 가능, 오직 소유자만 접근 가능)으로 제한 sudo chmod 600 /home/student/.ssh/authorized_keys

→ 공개키라고 해도 접근 권한이 널널할 경우 보안상 취약하다고 보고 SSH가 사용하지 않음
본인만 접근 가능해야 안전하다는 정책

요약하면,
1.공개 키를 authorized_keys에 넣고,
2.student 계정 본인만 소유하도록 하며
3.다른 누구도 건드릴 수 없게 권한을 잠그는 것

  1. 개인키(mykey.pem) 파일을 학생들에게 배포

Slack을 통해 개인키 파일 제공 예정

4. 학생 노트북(클라이언트)에서 서버에 접속

  1. 서버에게 전달받은 개인키의 권한 변경
terminal
# 권한을 r-------- 로 변경 chmod 400 mykey.pem

→ 읽기 권한만 소유자(owner)에게 부여, 쓰기/실행은 불가, 다른 사용자도 접근 불가

권한을 최소화해서 오직 나만 읽을 수 있도록 만들어야 안전하기 때문

  1. 서버 노트북에 접속 시도
terminal
# 실제 IP 주소 확인해서 접속하기 ssh -i mykey.pem student@{192.168.0.50} # {IP 주소}, {} 기호는 작성 x

SSH 포트가 열린 22번은 well-known 포트 

  1. 인증 메시지 확인

The authenticity of host ‘192.168.0.50 (192.168.0.50)’ can’t be established.
ECDSA key fingerprint is SHA256:xxxxxxxxxxxx.
Are you sure you want to continue connecting (yes/no/[fingerprint])?

→ yes 입력 후 엔터

Last updated on