Como você gerencia chaves SSH?

15

Eu tenho um servidor com vários usuários, cada um com várias chaves SSH autorizadas. Existe alguma maneira eficaz (utilitário de linha de comando?) De controlar qual chave pertence a quem e remover / adicionar chaves rapidamente (além do ssh-copy-id)?

Olivier Lalonde
fonte
1
shell scripts podem facilmente controlar o login vezes a partir de troncos e manipular os arquivos em .ssh ... Eu sei que isso não é o que você está procurando, por isso é um comentário não é uma resposta
RobotHumans
1
O uso da última parte de cada linha em .ssh/authorized_keysdestina-se a comentários (de man sshd: "As chaves públicas do Protocolo 1 consistem nos seguintes campos separados por espaço: opções, bits, expoente, módulo, comentário. A chave pública do Protocolo 2 consiste em: opções, tipo de chave, chave codificada em base64, comentário. "). E para responder à pergunta, eu uso, vimmas qualquer editor deve fazê-lo.
shellholic
Obviamente, se todos os usuários tiverem uma conta de usuário separada, não haverá problema, desde que todas as entradas estejam na pasta pessoal de todos (ou na verdade em .ssh / allowed_keys, mas de qualquer maneira).
Olli
@shellholic, você tem uma boa resposta. Postá-lo para que possa ser marcado como tal :)
djeikyb
@djeikyb ok, feito, mas eu deveria completar um pouco
shellholic

Respostas:

3

Você pode usar a última parte de cada linha .ssh/authorized_keyspara comentários. De man sshd:

As chaves públicas do protocolo no 1 consistem nos seguintes campos separados por espaço: opções, bits, expoente, módulo, comentário. A chave pública do protocolo 2 consiste em: opções, tipo de chave, chave codificada em base64, comentário.

E para responder à pergunta, eu uso, vimmas qualquer editor deve fazê-lo.

Meus comentários geralmente contêm:

  • data de criação
  • localização física: computador de criação / pen drive (prefiro não mover a chave privada, mas gerar / revogá-las e saber onde elas estão)
  • 1-2 palavras sobre a finalidade (para qual login, para qual cliente, para qual script)
shellholic
fonte
3

Eu verificaria o projeto Monkeysphere . Ele usa os conceitos de Web of Trust do OpenPGP para gerenciar os arquivos allowed_keys e known_hosts, sem exigir alterações no cliente ou servidor ssh.

Da1T
fonte