
Estou tentando gerar um par de chaves para permitir que um servidor Jenkins faça ssh para outro (por meio do plugin ssh-steps, se for relevante). A chave pública irá para as chaves autorizadas no host de destino. Meu entendimento é que deveria ser simples, algo como:
sudo su - [jenkins user]
ssh-keygen -t rsa -b 4096 -C jenkinsuser@jenkinshost
Em seguida, salve a chave /home/jenkinsuser/.ssh/id_rsa
e pegue a chave pública para adicioná-la às chaves autorizadas no host.
O que estou vendo é que sudo su - jenkinsuser
não funciona e /etc/passwd
revela que o shell desse usuário está configurado /bin/false
para desabilitar o login pelo que entendi.
Com isso em mente, estou procurando uma prática recomendada para designar um local para a chave ssh, já que o usuário tem o login desabilitado e, portanto, não tem diretório inicial.
Responder1
Jenkins tem um integradoarmazenamento de credenciaisqual é o local mais apropriado para colocar as chaves SSH usadas pelos trabalhos do Jenkins. O armazenamento de credenciais foi projetado para armazenar vários tipos de credenciais usadas pelos trabalhos do Jenkins, como chaves SSH, nomes de usuário/senhas e chaves de API. O armazenamento de credenciais permite a delegação de acesso e garante que credenciais confidenciais não sejam gravadas na saída do trabalho.
Responder2
Você não precisa ser root para executar o script de geração de chaves.
Normalmente guardo todas as minhas chaves em arquivos /etc/ssh
. Isso está fora do diretório inicial e acho que /etc
é o diretório mais preciso para isso.