인프런 커뮤니티 질문&답변
ssh 공개키 등록하는 거는 이해했는데, k8s환경에서는 어떻게 하나요?
작성
·
16
0
안녕하세요. ansible강의가 업무에 도움이 많이 되었습니다.
특히, 앤서블로 관리하는 서버를 별도 계정/패스워드 없이 인증서가지고 접속하는 방법은 도움이 많이 되었습니다.
근데, 앤서블 서버(정확히는 awx)를 컨테이너 환경으로 바뀌게 되었는데, 이런 경우는 개인키, 공용키 생성을 어떻게 하나요?
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
서성혁님께서 질문 주신 Kubernetes 환경에서 SSH 공개키를 등록하는 방법에 대해 설명드리겠습니다.
Spring Boot Reference Documentation에 따르면, Spring Boot는 Kubernetes 배포 환경을 자동으로 감지합니다. Kubernetes 환경에서의 SSH 키 관리는 일반적인 서버 환경과 유사하지만, 더 세심한 설정이 필요할 수 있습니다. 기본적으로 SSH 키는 애플리케이션 컨테이너 이미지의 빌드 프로세스에 포함시키거나, Kubernetes의 시크릿(Secret) 객체로 설정하여 Pod에서 참조할 수 있도록 만드는 방법이 있습니다.
SSH 키 생성:
- 로컬 머신에서 SSH 키를 생성합니다. 예: 
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
 - 이 과정에서 생성된 
id_rsa(개인키)와id_rsa.pub(공개키)를 Kubernetes에 등록할 준비를 합니다.
 
- 로컬 머신에서 SSH 키를 생성합니다. 예: 
 Kubernetes 시크릿 생성:
- 생성된 SSH 키를 Kubernetes 시크릿으로 등록합니다.
 - 예를 들면 다음과 같은 명령을 사용할 수 있습니다:
kubectl create secret generic ssh-key-secret --from-file=id_rsa=/path/to/your/id_rsa --from-file=id_rsa.pub=/path/to/your/id_rsa.pub
 
- 생성된 SSH 키를 Kubernetes 시크릿으로 등록합니다.
 Pod에 시크릿 마운트:
- 생성한 시크릿을 Deployment나 Pod의 명세에 포함시켜 환경 변수 또는 파일로 사용할 수 있게 설정합니다.
 - Pod에서 비밀 키 사용을 위해 
volume및volumeMounts를 설정하여 시크릿을 참조할 수 있도록 하세요.
 
- 생성한 시크릿을 Deployment나 Pod의 명세에 포함시켜 환경 변수 또는 파일로 사용할 수 있게 설정합니다.
 
이렇게 구성하면 컨테이너 내에서 키를 사용하여 SSH를 사용하는 애플리케이션을 쉽게 관리할 수 있습니다. Kubernetes와의 연동을 위해 필요한 더 세부적인 설정은 공식 문서를 참조하시거나, 환경에 맞게 설정을 변경하시면 됩니다.
추가로 더 읽어보실 자료:
- Kubernetes에서 시크릿 사용하기
궁금하신 점이 있으면 언제든지 문의해주세요. 항상 성공적인 개발을 응원합니다!




