Autenticação de chave pública SSH - uma chave pública pode ser usada por vários usuários?

2

Eu estou querendo implantar um servidor RHEL5 usando o Kickstarts e para segurança eu só quero permitir que clientes remotos façam ssh para o servidor como o usuário 'Desenvolvedor' (eu já configurei a configuração sshd para desabilitar o acesso root). Eu tenho algumas perguntas sobre como configurar isso:

  • Um usuário local chamado 'Desenvolvedor' precisa estar em cada máquina cliente ao efetuar login no servidor? (Eu não acho que isso acontece, mas pensei que iria apenas confirmar enquanto estou nisso)
  • Antes de implantar o servidor, posso apenas configurar o arquivo authorized_keys com uma entrada para a chave pública RSA de cada cliente? E importa o que o usuário realmente digita dizer ssh -p 22020 Developer@server (isto é, isso afeta qualquer informação necessária no arquivo authorized_keys?)
  • A chave pública do servidor é necessária no arquivo known_hosts do cliente (eu quero que isso funcione a cada tempo sem ser solicitado por nada)?
  • O usuário 'Desenvolvedor' requer um diretório pessoal com ~ / .ssh ou posso apenas configurar o servidor sshd com chaves de um diretório diferente? (O usuário desenvolvedor não precisa acessar nenhuma informação em um diretório inicial, apenas arquivos em uma pasta chamada '/ var / Tasks'?
por Luke Bibby 01.02.2010 / 08:11

1 resposta

9

Primeiro, não há benefício de segurança para permitir que os usuários se conectem com um nome de usuário de "desenvolvedor". Se você quiser que os usuários tenham acesso compartilhado ao mesmo grupo de arquivos, coloque-os no mesmo grupo do UNIX e tenha / var / Tasks pertencente a esse grupo. Nomes de usuários separados permitem auditoria, melhor solução de problemas, etc.

Quanto às suas outras perguntas:

  • Os nomes de usuários do cliente não são importantes. Ao se conectar, os usuários podem especificar o nome de usuário remoto que desejam usar: ssh [email protected]
  • Você pode preencher authorized_keys com quantas chaves de usuário tiver espaço em disco, e poderá fazê-lo antes que o servidor seja implantado. Além disso, o mesmo arquivo authorized_keys é lido independentemente de qual número da porta o sshd está escutando.
  • Sim, a chave pública do servidor será armazenada em known_hosts e as primeiras conexões serão solicitadas ao usuário para aceitar a chave remota. Esta parte é o que torna a SSH capaz de detectar ataques man-in-the-middle, e se os usuários aceitarem cegamente qualquer chave, o SSH se torna vulnerável a ataques man-in-the-middle. Se você tiver acesso suficiente às máquinas clientes, poderá adicionar a impressão digital da chave de servidores remotos ao arquivo known_hosts de cada cliente. Essa é a única maneira de evitar esse aviso.
  • Você pode usar a palavra-chave AuthorizedKeysFile em sshd_config para especificar onde deseja que o sshd procure chaves no servidor. Eu coloco as chaves em /etc/ssh/keys/%u , onde% u é um arquivo com o nome do usuário e me certifico de que o usuário tenha acesso de leitura.
por 01.02.2010 / 08:39