SSH를 사용하여 GitLab Runner와 배포 서버 간의 통신 설정
다음은 빠르고 쉬운 방법입니다.
전제 조건
SSH (Secure Shell) protocol uses public-key cryptography to authenticate Client machine with a remote Server machine on a network.
시작하겠습니다. 먼저 SSH 키 쌍을 만듭니다.
ssh-keygen은 SSH용 새 인증 키 쌍을 만드는 도구입니다. 이것은 사용에 대한 자습서이며 몇 가지 특수 사용 사례를 다룹니다.
ssh-keygen은 SSH용 새 인증 키 쌍을 만드는 도구입니다. 이것은 사용에 대한 자습서이며 몇 가지 특수 사용 사례를 다룹니다.
ssh.com
Linux에서 설명을 위해 이 키를 만들었으며 SSH 키 경로는 OS에 따라 다를 수 있습니다.
개인 키(~/.ssh/id_rsa)
-----BEGIN RSA PRIVATE KEY-----
MIICWwIBAAKBgQCAD0ZKDVKEyqPd+N+7N1O/fPjDYAHa8xL24ADRHegqurUa8cTL
tCQX82ysu6uxqfVyOMY3YGOh2HCH8S+jB6GTuSY1tIsYaU46d5H9w7YXAr/MMWRJ
L9wkUoU7bB/I8vK3eTVHsC72ufYhohQVXDY6+ZoG3Bsxyxy7SDbJqVBqXwIDAQAB
AoGABCH6D7u8VQLBJRG6Dq2razuaP5vik3FSxFrYS+deLbrWy2bQBg7rN0ao1C4+
TT6B6EzCwNjAfmGgyBJVijpd0X3iQzt5iPT5vMA2TrybbpMLZnikRtbo5rkgk+Tg
m7AiqXzOSHv02ZtrpgDV3pQ+qa/Tk9FU/7hjefKMF2Ru6EkCQQDINwkKizU3Uw4T
IwMAMTITOrLiswR4tJOmsG01Xe47dMkmERrtI47fYJcPLsNgnBjs6Pus8ALscOCM
xinMBwFdAkEAo72Ir7d0BL/GmogKgmELXmVS6t1jzNok0ioi4w7EefYMaDrlMrlk
rI7VMnExScPHc8ksezRBOJSS89cIIzYy6wJABrrq3+LcEBcHoxcLM8dzknfnqX0x
CkmvqOvHUALvTipX1KLAj/YhCFs72LPOt4GnyNbwFtkekAofUjwbDZOytQJAXd8X
McX22ZIohgdgHwcLwX5NXyC1Sof1fBd0EMAym8kXq9m39LCcquDoERcbrrJy8kpv
GeMHUSy8Ytbwb19vKQJAT/lYWZqTpr+DfmTdmvRbCOz9hWOw4Hj+nfjfSsfzU9vg
bWqKz2KvKlSvYBV4uKBfxsv6ML5dkaiHb5l3pKfDUw==
-----END RSA PRIVATE KEY-----
공개 키(~/.ssh/id_rsa.pub)
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQCAD0ZKDVKEyqPd+N+7N1O/fPjDYAHa8xL24ADRHegqurUa8cTLtCQX82ysu6uxqfVyOMY3YGOh2HCH8S+jB6GTuSY1tIsYaU46d5H9w7YXAr/MMWRJL9wkUoU7bB/I8vK3eTVHsC72ufYhohQVXDY6+ZoG3Bsxyxy7SDbJqVBqXw==
다음은 이 키를 어디에 저장합니까?
위에서 생성한 SSH 키는 Gitlab Runner와 배포 서버 간에 암호화되고 인증된 세션을 활성화하기 위해 다음 위치에 저장됩니다.
1. Gitlab CI 환경 변수
GitLab CI/CD 변수 | 깃랩
GitLab Community Edition, GitLab Enterprise Edition, Omnibus GitLab 및 GitLab Runner용 문서.
docs.gitlab.com
개인 및 공개 키에 이름(SSH_PRIVATE_KEY/SSH_PUBLIC_KEY)을 지정하여 저장하면 그룹 수준에서 키를 저장하고 환경 범위 드롭다운에서 선택하여 프로젝트에서 상속할 수 있습니다.
2. Gitlab Runner Machine(SSH 폴더)
개인 및 공개 키는 Gitlab Runner 머신의 [~/.ssh ] 폴더에 저장해야 합니다. 이렇게 하려면 프로젝트 .gitlab-ci.yml 파일에 다음 bash 명령을 추가해야 합니다.
$SSH_PRIVATE_KEY
&$SSH_PUBLIC_KEY
are variables which we created in the step above.
gitlab.local.net을 Gitlab을 호스팅한 URL로 바꿉니다.
before_script:
- eval $(ssh-agent -s)
- mkdir -p ~/.ssh
- chmod 700 ~/.ssh
- echo -e "Host *\n\tStrictHostKeyChecking no\n" > ~/.ssh/config;
- cat "$SSH_PRIVATE_KEY" | tr -d '\r' > ~/.ssh/id_rsa
- cat "$SSH_PUBLIC_KEY" | tr -d '\r' > ~/.ssh/id_rsa.pub
- chmod 600 ~/.ssh/id_rsa;
- chmod 764 ~/.ssh/id_rsa.pub;
- ssh-keyscan -H gitlab.local.net >> ~/.ssh/known_hosts
3. 서버에서 생성
authorized_keys
애플리케이션을 배포할 서버에서 ~/.ssh 내부에 authorized_keys 파일을 만듭니다.Now, You would either be running your application on a Physical Server (nostalgic) or a VM — Virtual Machine (still there) or a Container (there you are).
Then, Copy and paste the public key to the end ofauthorized_keys
file
~/.ssh/authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQCAD0ZKDVKEyqPd+N+7N1O/fPjDYAHa8xL24ADRHegqurUa8cTLtCQX82ysu6uxqfVyOMY3YGOh2HCH8S+jB6GTuSY1tIsYaU46d5H9w7YXAr/MMWRJL9wkUoU7bB/I8vK3eTVHsC72ufYhohQVXDY6+ZoG3Bsxyxy7SDbJqVBqXw==
설정하려는 연결에 따라 여기에 원하는 만큼 공개 키를 추가할 수 있습니다.
마지막 단계를 통해 Gitlab Runner와 애플리케이션을 배포할 서버 간에 암호화된 통신 채널을 성공적으로 설정했습니다.
명심하세요
SSH 키에 매우 주의를 기울이고 올바른 권한과 소유권을 설정해야 합니다.
감사합니다 !!
Reference
이 문제에 관하여(SSH를 사용하여 GitLab Runner와 배포 서버 간의 통신 설정), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/rizways/setting-up-communication-between-gitlab-runner-and-deployment-server-with-ssh-434k텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)