SSH: um authorized_keys para várias contas de serviço

5

Existe uma maneira de configurar o SSH para verificar um único arquivo authorized_keys para vários usuários? Eu sei que posso copiar a chave pública no arquivo authorized_keys de cada usuário, mas para facilitar o gerenciamento, eu gostaria de um arquivo autorizado_keys adicional para os administradores que permitiria que eles fizessem logon em todos os usuários (ou grupos específicos de usuários).

    
por ctlq 04.10.2012 / 19:26

3 respostas

12

Você pode usar a diretiva AuthorizedKeysFile em / etc / ssh / sshd_config para fazer isso. O local padrão é .ssh/authorized_keys , mas você pode usar algo que contenha um caminho absoluto, por exemplo,

AuthorizedKeysFile /path/to/your/keyfile

as man pages dizem isso

AuthorizedKeysFile

Specifies the file that contains the public keys that can be used for user authentication. AuthorizedKeysFile may contain tokens of the form %T which are substituted during connection setup. The following tokens are defined: %% is replaced by a literal ’%’, %h is replaced by the home directory of the user being authenticated, and %u is replaced by the username of that user. After expansion, AuthorizedKeysFile is taken to be an absolute path or one relative to the user’s home directory. The default is “.ssh/authorized_keys”.

    
por 04.10.2012 / 20:19
3

Seus administradores devem usar e usar (para o seu ambiente) uma combinação de sudo e su .

ssh não é a ferramenta certa para isso.

Contradictory Edit (Desculpe, parece que eu sofri de cegueira ao título. Obrigado Zoredache ):

Coloque todas as contas de serviço no mesmo group , use esse grupo como parte de um bloco Match em sshd_config e especifique o AuthorisedKeysFile que você deseja que todas elas usem. (O grupo de correspondências é para que todas as contas não sejam afetadas.) No entanto, eles não terão mais AuthorisedKeysFiles individuais. openssh-lpk pode permitir que as contas individuais tenham suas próprias chaves, mas não tenho certeza disso.

    
por 04.10.2012 / 19:32
3

Editar : Você deve votar a favor da acima de @Iain . Está completo e preciso. Minha resposta abaixo é voltada para chaves privadas compartilhadas - claramente um mal-entendido de minha parte. Deixarei esta resposta aqui, pois considero uma informação valiosa, não apenas para essa pergunta específica.

Eu não sei o seu caso de uso, mas estou tentado a dizer "você está fazendo errado".

Cada usuário deve ter seu próprio kepair. Dessa forma, quando um usuário sai, é transferido, promovido para uma função de gerenciamento ou qualquer outra coisa que exija revogação de direitos, você apenas revoga essa chave. Isso também torna a auditoria eficaz muito mais difícil.

Se você precisar que os usuários representem outros usuários, eles deverão ser configurados para isso com sudo . Ter chaves SSH compartilhadas normalmente não é uma boa ideia.

    
por 04.10.2012 / 19:31