DevOps/CI CD

Bitbucket SSH key Change

Jeffrey Oh 2023. 6. 21. 12:59
반응형

bitbucket ssh key 변경으로 인해 해야할 사항

rsa 알고리즘을 지원하던 것을 이제 ecdsa 알고리즘으로 바꿔야한다고 bitbucket 에서 행동지침으로 알려주었다

변경하는 작업을 기록해두기 위한 글이다.

bitbucket 에서 하란대로 해보기

먼저 여기 접속해보면

ssh git@bitbucket.org host_key_info

명령어를 통해 쉽게 바꿀수 있다고 한다.

You are using host key with fingerprint:
ssh-ed25519 SHA256:ybgmFkzwOSotHTHLJgHO0QN8L0xErw6vd0VhFA9m3SM

See https://bitbucket.org/blog/ssh-host-key-changes for more details.

만약 위처럼 나오지 않는다면

ssh-keygen -R bitbucket.org && curl https://bitbucket.org/site/ssh >> ~/.ssh/known_hosts

위 명령어를 실행한다.

하란대로 해서 되면 얼마나 좋을까

하란대로 해도 안된다.
jenkins 에서는 여전히 에러를 내뱉는다.

stderr: No ECDSA host key is known for bitbucket.org and you have requested strict checking.

Host key verification failed.

fatal: Could not read from remote repository.

해야할 부분이 더있다

기존에 사용하던 private key 가 rsa 알고리즘으로 생성된 키 일것이다. (아님 모름)
사용자 계정에서 ecdsa 알고리즘으로 새로 키를 발급하자.

ssh-keygen -t ecdsa -b 256

그리고 known_hosts 파일을 혹시 모르니 known_hosts.old 로 백업을 해두고 위에서 했던 것을 다시한번 실행한다.
기존에 known_hosts 파일 내에 bitbucket 관련 rsa 키만 제거하면 되기는 하는데 제거해도 자꾸 충돌이 나는 것 같아서 그냥 새로 만듦.

ssh git@bitbucket.org host_key_info
ssh-keygen -R bitbucket.org && curl https://bitbucket.org/site/ssh >> ~/.ssh/known_hosts

이러면 새로 known_hosts 가 생성이 될텐데 /var/lib/jenkins/.ssh 에도 known_hosts 파일이 있어야한다.
파일을 저 경로로 복사한다. 하는김에 새로 생성했던 키들도 복사한다.

cp ~/.ssh/id_ecdsa* /var/lib/jenkins/.ssh/.
cp ~/.ssh/known_hosts /var/lib/jenkins/.ssh/.

그리고 해당 파일들의 소유자를 jenkins 로 변경한다.

chown jenkins:jenkins /var/lib/jenkins/.ssh/*

그리고 증명된 사람인지 아닌지 물어보는 걸 뜨는 것을 방지 하기 위해 아래 명령어를 한번 실행

git ls-remote -h git@bitbucket.org:레포지토리.git HEAD

만약 yes/no 그게 뜬다면 yes 한번 해준다.

bitbucket 설정 변경

bitbucket 의 workspace 설정 메뉴로 진입해서 보안 설정 > ssh 키 로 들어간다.

기존에 rsa 공개키 값이 저장되어있을 텐데 여기에 ecdsa 공개키를 추가로 등록한다.

jenkins Credentials 수정

기존에 사용하던 ssh 값을 새로 생성한 비밀키로 업데이트해야한다.
id_ecdsa 파일의 내용을 jenkins credentials 에서 id_rsa 로 등록해두었던 키값을 변경한다.

docker 말썽

/var/run/docker.sock: connect: permission denied

/var/run/docker.sock 파일의 권한을 666으로 변경하여 그룹 내 다른 사용자도 접근 가능하게 변경

sudo chmod 666 /var/run/docker.sock

또는 chown 으로 group ownership 변경

sudo chown root:docker /var/run/docker.sock
반응형