SSH 키 기반 인증 구성

Red Hat Enterprise LinuxBeginner
지금 연습하기

소개

이 챌린지에서는 비밀번호 기반 인증보다 보안성이 뛰어난 SSH 키 기반 인증을 구성해 봅니다. 공개키와 개인키로 구성된 키 쌍을 생성하고, 서버에 공개키를 등록한 뒤, 키를 사용한 접속이 가능하도록 SSH 서비스를 설정하게 됩니다. 이를 통해 비밀번호 없이 SSH 서버에 로그인할 수 있게 되어 보안과 편의성을 동시에 높일 수 있습니다.

공개키 및 개인키 쌍 생성

첫 번째 단계는 암호화 키 쌍을 만드는 것입니다. 이 쌍은 본인만 안전하게 보관해야 하는 개인키와, 접속 권한을 부여하기 위해 서버에 저장하는 공개키로 구성됩니다.

과제

  • ssh-keygen 명령어를 사용하여 새로운 RSA 공개키 - 개인키 쌍을 생성하세요.

요구 사항

  • 키 쌍을 생성하기 전에 testuser 계정으로 전환하세요.
  • 반드시 testuser 사용자로 키 쌍을 생성해야 합니다.
  • 파일 저장 위치를 묻는 메시지가 나오면 기본 경로 (/home/testuser/.ssh/id_rsa) 를 사용하세요.
  • 개인키에 대한 암호 (passphrase) 는 설정하지 마세요 (암호 입력 요청 시 Enter 키를 누르세요).

시작하기

먼저, testuser 계정으로 전환합니다:

su - testuser
## Password: testuser123

예시

키 쌍 생성을 완료한 후, ~/.ssh 디렉토리의 파일 목록을 확인하여 생성된 키를 볼 수 있습니다.

$ ls -l ~/.ssh
total 8
-rw------- 1 testuser testuser 3401 Aug 19 03:49 id_rsa
-rw-r--r-- 1 testuser testuser  759 Aug 19 03:49 id_rsa.pub

id_rsa 파일은 개인키이며, id_rsa.pub 파일은 공개키입니다.

공개키 등록 및 SSH 서버 설정

키 쌍이 준비되었으므로 이제 서버를 설정해야 합니다. 이 작업은 두 가지 주요 단계로 나뉩니다. 하나는 공개키를 승인된 키 목록에 추가하는 것이고, 다른 하나는 SSH 서비스가 키 기반 인증을 허용하도록 구성하는 것입니다.

사전 요구 사항

여전히 testuser 계정으로 로그인되어 있는지 확인하세요. 아니라면 다시 전환합니다:

su - testuser
## Password: testuser123

과제

  • 공개키 내용을 ~/.ssh/authorized_keys 파일에 복사하세요.
  • ~/.ssh/authorized_keys 파일에 대해 올바른 파일 권한을 설정하세요.
  • SSH 서버 설정 파일 (/etc/ssh/sshd_config) 을 수정하여 공개키 인증을 활성화하세요.
  • 변경된 설정을 적용하기 위해 SSH 서비스를 다시 로드하세요.

요구 사항

  • ~/.ssh/authorized_keys 파일이 생성되어야 하며, 공개키 (~/.ssh/id_rsa.pub) 의 내용이 포함되어야 합니다.
  • ~/.ssh/authorized_keys 파일의 권한은 600이어야 합니다.
  • /etc/ssh/sshd_config 파일에서 PubkeyAuthentication 항목의 주석을 해제하고 yes로 설정해야 합니다.
  • SSH 서비스 설정은 sudo pkill -HUP sshd 명령어를 사용하여 다시 로드해야 합니다.

힌트

  • cat 명령어와 출력 리다이렉션 (>>) 을 사용하여 키를 authorized_keys 파일에 추가할 수 있습니다.
  • 파일 권한을 설정하려면 chmod 명령어를 사용하세요.
  • testuser/etc/ssh/sshd_config를 편집하고 sshd 서비스를 다시 로드할 수 있는 sudo 권한을 가지고 있습니다.
  • 이 컨테이너 환경에서는 systemctl을 사용할 수 없으므로, pkill을 사용하여 sshd 프로세스에 HUP 시그널을 보내 설정을 다시 로드하세요.

예시

모든 단계를 완료하면 비밀번호 입력 없이 SSH 키를 사용하여 localhost에 로그인할 수 있어야 합니다.

$ ssh testuser@localhost "echo Login successful"
Login successful

요약

이 챌린지에서는 키 기반 인증을 구성하여 SSH 보안을 강화하는 방법을 배웠습니다. 공개키 - 개인키 쌍을 생성하고, 공개키를 authorized_keys 파일에 추가하여 서버에서 승인했으며, 이 보안 인증 방식을 활성화하도록 SSH 서버 설정을 수정했습니다. 이 챌린지를 완료함으로써 원격 시스템을 안전하게 관리하기 위한 필수 기술을 습득하게 되었습니다.

✨ 솔루션 확인 및 연습✨ 솔루션 확인 및 연습