
젠킨스 서버가 다른 서버로 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
이에 대한 가장 정확한 디렉토리라고 생각합니다.