InfoGrab Docs

GitLab CI/CD에서 SSH 키 사용

GitLab CI/CD에서 SSH 키 사용에 대해 설명합니다.

GitLab은 빌드 환경(GitLab Runner가 실행되는 곳)에서 SSH 키를 관리하는 내장 지원이 없습니다. 다음을 원할 때 SSH 키를 사용하세요: 내부 서브모듈을 체크아웃합니다. 패키지 관리자를 사용하여 개인 패키지를 다운로드합니다. 예를 들어 Bundler. 자체 서버 또는 예를 들어 Heroku에 애플리케이션을 배포합니다. 빌드 환경에서 원격 서버로 SSH 명령을 실행합니다. 빌드 환경에서 원격 서버로 파일을 Rsync합니다. 가장 널리 지원되는 방법은 .gitlab-ci.yml 을 확장하여 빌드 환경에 SSH 키를 주입하는 것입니다. 이 접근 방식은 Docker나 shell과 같은 모든 유형의 executor 와 함께 작동합니다. Note CI/CD에서 SSH 키를 사용할 때 개인 키를 안전하게 저장하고 자동화 job에 개인 SSH 키를 재사용하지 마세요. 무단 접근 위험을 줄이기 위해 키를 정기적으로 교체하세요. SSH 키 생성 및 사용 # GitLab CI/CD에서 SSH 키를 생성하고 사용하려면: 새 SSH 키 쌍 생성 . 개인 키를 SSH_PRIVATE_KEY 라는 파일 유형 CI/CD 변수 로 추가합니다. 개인 키를 로드하는 ssh-agent 를 job에서 실행합니다. 공개 키를 접근하려는 서버에 복사합니다(일반적으로 ~/.ssh/authorized_keys 에). 개인 GitLab 리포지터리에 접근하는 경우 공개 키를 배포 키 로 추가해야 합니다. 다음 예시에서 ssh-add - 명령은 job 로그에 $SSH_PRIVATE_KEY 의 값을 표시하지 않지만, 디버그 로깅 을 활성화하면 노출될 수 있습니다. 또한 파이프라인 가시성 을 확인하는 것이 좋습니다. SSH 키를 파일 유형 변수로 추가 # SSH 키를 프로젝트에 추가하려면 키를 파일 유형 CI/CD 변수 로 추가합니다: Visibility 를 Visible 로 설정합니다. [!note] SSH 키에는 공백 문자가 포함되어 있으므로 Masked 또는 Masked and hidden 변수에는 공백 문자를 포함할 수 없기 때문에 가시성 설정은 반드시 Visible 이어야 합니다. SSH 키가 job 로그에 표시되지 않도록 변수에 cat 이나 tee 같은 명령을 실행하지 마세요. Key 텍스트 상자에 변수 이름을 입력합니다. 예를 들어 SSH_PRIVATE_KEY . Value 텍스트 상자에 개인 키 내용을 붙여넣습니다. 값은 개행 문자( LF 문자)로 끝나야 합니다. 개행을 추가하려면 저장 전 마지막 줄 끝에서 Enter 또는 Return 을 누르세요. SSH 키를 일반 변수로 추가 # 파일 유형 CI/CD 변수를 사용하지 않으려면 SSH 예시 프로젝트 를 참조하세요. 이 방법은 파일 유형 변수 대신 일반 CI/CD 변수를 사용합니다. 일반적으로 파일 유형 변수가 선호됩니다. 멀티라인 형식을 유지하고 형식 관련 오류 위험을 줄이기 때문입니다. Docker executor를 사용할 때 SSH 키 # CI/CD job이 Docker 컨테이너에서 실행되면 환경이 격리됩