SSH 명령을 실행하도록 Jenkins 설정 - 로그인이 비활성화된 사용자의 SSH 키를 어디에 저장합니까?

SSH 명령을 실행하도록 Jenkins 설정 - 로그인이 비활성화된 사용자의 SSH 키를 어디에 저장합니까?

젠킨스 서버가 다른 서버로 ssh할 수 있도록 키 쌍을 생성하려고 합니다(해당되는 경우 ssh-steps 플러그인을 통해). 공개 키는 대상 호스트의 인증된 키에 들어갑니다. 내 이해는 다음과 같이 간단해야 한다는 것입니다.

sudo su - [jenkins user]
ssh-keygen -t rsa -b 4096 -C jenkinsuser@jenkinshost 

그런 다음 키를 저장 /home/jenkinsuser/.ssh/id_rsa하고 공개 키를 가져와 호스트의 인증된 키에 추가합니다.

내가 보고 있는 것은 sudo su - jenkinsuser작동하지 않으며 /etc/passwd이 사용자의 셸이 /bin/false내가 이해하는 대로 로그인을 비활성화하도록 설정되어 있다는 것입니다.

이를 염두에 두고 사용자가 로그인이 비활성화되어 홈 디렉토리가 없기 때문에 SSH 키의 위치를 ​​지정하는 모범 사례를 찾고 있습니다.

답변1

Jenkins에는 다음이 내장되어 있습니다.자격 증명 저장소Jenkins 작업에서 사용하는 SSH 키를 배치하기에 가장 적합한 위치입니다. 자격 증명 저장소는 SSH 키, 사용자 이름/비밀번호, API 키 등 Jenkins 작업에서 사용하는 다양한 종류의 자격 증명을 저장하도록 설계되었습니다. 자격 증명 저장소는 액세스 위임을 허용하고 중요한 자격 증명이 작업 출력에 기록되지 않도록 합니다.

답변2

키 생성 스크립트를 실행하기 위해 루트일 필요는 없습니다.

나는 보통 모든 키를 /etc/ssh. 이것은 홈 디렉토리 외부에 있으며 /etc이에 대한 가장 정확한 디렉토리라고 생각합니다.

관련 정보