소개
이 챌린지에서는 비밀번호 기반 인증보다 보안성이 뛰어난 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 서버 설정을 수정했습니다. 이 챌린지를 완료함으로써 원격 시스템을 안전하게 관리하기 위한 필수 기술을 습득하게 되었습니다.



