Configurando o Jenkins para executar comandos ssh - onde armazenar chaves SSH para um usuário com login desabilitado?

Configurando o Jenkins para executar comandos ssh - onde armazenar chaves SSH para um usuário com login desabilitado?

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_rsae pegue a chave pública para adicioná-la às chaves autorizadas no host.

O que estou vendo é que sudo su - jenkinsusernão funciona e /etc/passwdrevela que o shell desse usuário está configurado /bin/falsepara 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.

informação relacionada