Fallback para authorized_keys
Estou trabalhando em uma peça de automação que gera uma lista de chaves públicas permitidas e sobrescreve o usuário de um servidor ~./ssh/authorized_keys. Existe uma maneira de evitar que um erro na automação me bloqueie completamente de acessar o host? Tenho algumas limitações, o servidor em si é de uma imagem de VM que obtém atualizações com o tempo, portanto, criar usuários adicionais não é algo que eu gostaria de perseguir.
Até agora eu pensei em:
- Seria possível ter composição de
authorized_keys. Se houvesse 2 arquivos, eu poderia ter um arquivo dinâmico e um dos arquivos com uma chave de fallback estática. - Ainda farei um teste antes da substituição (como verificar o conteúdo e o formato das chaves) para garantir que não estou copiando um arquivo vazio. Mesmo assim, algo pode dar errado.
A composição é uma possibilidade? Se não, vocês têm outras ideias?
Agradeço antecipadamente.
Respostas
sshdpor padrão já verifica ~/.ssh/authorized_keyse ~/.ssh/authorized_keys2. Isso é configurável com a AuthorizedKeysFileopção em /etc/ssh/sshd_config, que pode levar uma lista de vários arquivos para verificar. De sshd_config(5):
AuthorizedKeysFile
Especifica o arquivo que contém as chaves públicas usadas para autenticação do usuário. O formato é descrito na seção AUTHORIZED_KEYS FILE FORMAT do sshd (8). Os argumentos para AuthorizedKeysFile aceitam os tokens descritos na seção TOKENS. Após a expansão, AuthorizedKeysFile é considerado um caminho absoluto ou relativo ao diretório inicial do usuário. Vários arquivos podem ser listados, separados por espaços em branco. Como alternativa, esta opção pode ser definida como nenhum para ignorar a verificação de chaves de usuário nos arquivos. O padrão é ".ssh / authorized_keys .ssh / authorized_keys2".