permite acesso via ssh-key sem usar ~ / ssh / authorized_keys

2

Eu quero permitir o acesso a um diretório inicial via ssh / scp com uma chave. Normalmente eu colocaria a chave do pub em ~ / ssh / chaves autorizadas Mas eu quero

  • desativa a capacidade de adicionar ou remover chaves ssh (desativar ~ / ssh / authorized_keys)
  • O usuário não deve conseguir rm -f pub_key, modificar pub_key onde quer que esteja no sistema
  • torna o diretório onde as chaves do pub para contas diferentes são armazenadas não legíveis para usuários "normais", por exemplo, como /etc/sudoers.d/ só é legível por root1

Isso é possível? Como eu faria isso?

    
por Mandragor 05.02.2016 / 20:39

2 respostas

2

Há duas coisas que você deseja alcançar:

  • Proibir a autenticação usando ~/.ssh/authorized_keys

    Como proposto, defina AuthorizedKeysFile para algum lugar diferente. Se houver o requisito discutido, ele não será avaliado (caso contrário, não há mais nada a resolver).

  • Defina AuthorizedKeysCommand

    O comando retornará as chaves autorizadas do seu local de sua preferência.

Por exemplo:

AuthorizedKeysFile /etc/ssh/%u/authorized_keys
AuthorizedKeysCommand /usr/sbin/get_user_keys
AuthorizedKeysCommandUser dedicated_user

E seu script /usr/sbin/get_user_keys pode parecer:

#!/bin/sh
cat /etc/ssh/%u/authorized_keys

Isso basicamente torna as chaves somente para leitura e resolve seus problemas.

    
por 05.02.2016 / 22:40
0

Há uma coisa que você pode fazer sem editar os arquivos de configuração do sistema para obter a maior parte do que deseja. Você só usaria ~user/.ssh/authorized_keys e todo o resto como normal e faria isso imutável.

Você pode definir o diretório ~user/.ssh imutável, o que evita movê-lo ou excluí-lo, o que é importante se você não quiser que eles criem um novo .ssh com seu próprio conteúdo. Também evita adicionar, mover ou excluir arquivos dentro dele.

Você pode definir vários arquivos (como ~user/.ssh/authorized_keys ou ~user/.ssh/id_rsa.pub ) imutáveis, o que evita movê-los ou excluí-los. Também impede a edição deles.

Observe que os diretórios e arquivos imutáveis são protegidos dessa maneira mesmo contra seus proprietários . Eles são até protegidos dessa maneira contra o usuário root até que root remova a imutabilidade.

Certifique-se de definir corretamente as permissões para os diretórios e arquivos para privacidade antes de defini-las como imutáveis, já que a imutabilidade bloqueia mesmo isso.

Você define algo imutável assim:

sudo chattr +i [directory path|file path]

Um comando particularmente conveniente protege .ssh e todos os arquivos dentro dele (recursivamente se você tiver subdiretórios) de uma só vez:

sudo chattr -R +i ~user/.ssh

Para desativar a imutabilidade para alterar algo (lembre-se de ativá-lo quando terminar):

sudo chattr -i [directory path|file path]

Note que uma maneira rápida de editar o que você quiser é:

sudo chattr -R -i ~user/.ssh
    
por 03.07.2018 / 04:26

Tags