SSH de chave privada e pública para mais usuários, usuários root e sudo (VP)

1

Eu queria perguntar como posso usar a mesma autenticação (SSH de chave pública e privada) para o usuário raiz e para outro usuário (usuário sudo) em um VPS.

Ou, em termos de segurança, é melhor fazer o processo de criação e carregamento da chave (eu uso o puttygen) diretamente como um usuário sudo?

Desativando o login root e sem aplicar a autenticação de chave no root? Isso é seguro?

Muito obrigado antecipadamente pela ajuda, estou começando a enlouquecer ..: (

    
por Sefora 26.08.2014 / 21:43

3 respostas

1

Muitas questões diferentes (separadas) aqui ...

Considerações Práticas

Para usar o mesmo par de chaves para vários usuários, basta copiar o conteúdo (alguns ou todos) de ~/.ssh/authorized_keys no arquivo ${HOME}/.ssh/authorized_keys de outro usuário. Você precisará certificar-se de que as permissões no diretório .ssh e authorized_keys estejam suficientemente ajustadas ou que o servidor SSH possa cometer um erro e se recusar a processá-lo. Para uma idéia: apenas o usuário atual precisa de acesso a esses arquivos, e eles não precisam ser capazes de escrever ou executá-los, portanto, uma permissão de 400 para o arquivo e 500 para o diretório (ele precisa ser executado para que você possa lista seu conteúdo) deve estar bem. Consulte aqui para obter informações sobre as máscaras de permissão, se você não estiver familiarizado.

Considerações de segurança

Primeiro, é sempre uma boa idéia desabilitar o login root inteiramente via SSH, e definir uma senha de root separada (segura) na caixa. sudo tem praticamente o mesmo nível de segurança que su se seus usuários sudoers tiverem senhas seguras; se não, não é.

Se você estiver frequentemente precisando de root, procure formas de conceder permissões específicas e direcionadas aos usuários para satisfazer os casos de uso mais comuns de como você usará o servidor. Isso reduzirá a necessidade de fazer login como root, o que é sempre um risco elevado devido às permissões abertas.

Para fortalecer ainda mais o seu servidor SSH, você deve:

  • Altere sua porta do padrão 22 para algo com um número de 5 dígitos (menor que 65536, devido ao número da porta ser um valor de 16 bits)
  • Desativar login SSH baseado em senha para todos usuários (não apenas raiz)
  • Use par de chaves strongs com chaves privadas de 2048 bits ou 4096 bits. Sempre use RSA, não os algs mais fracos, como DSA.
  • Defina senhas strongs para todos os sudoers e root.

A questão de reutilizar o mesmo par de chaves desaparece se você desativar o login root. Se você precisar de vários usuários regulares e você for o único ser humano real que entrará no servidor, não vejo mal em reutilizar o mesmo par de chaves copiando o arquivo authorized_keys. Se você tiver vários inquilinos na caixa, cada pessoa deve ter seu próprio par de chaves.

    
por 26.08.2014 / 21:56
0

Para ter autenticação para vários usuários, basta adicionar a chave SSH pública ao arquivo ~/.ssh/authorized_keys do usuário normal e ao arquivo ~/.ssh/authorized_keys do root. Em seguida, você pode selecionar em qual conta fazer logon, escolhendo o nome de usuário no seu programa cliente.

A prática recomendada geral é desabilitar totalmente o login raiz e sempre usar um usuário normal para fazer logon e usar sudo ou su . No entanto, com a autenticação de chave pública, o risco de alguém forçar brutalmente sua chave é mínimo. Se você não definir uma senha para o usuário root, muitas pessoas dirão que está correto fazer login como root. Se você quiser uma camada adicional de segurança, desabilite o login root, defina uma senha para um usuário normal (assim sudo pede para você quando você usá-lo) e use autenticação de chave pública para o usuário normal efetuar login.

    
por 26.08.2014 / 21:51
0

Muito obrigado! Então eu tenho:

  • Criei chaves públicas e privadas com PuttyGen (SSH-2 RSA, 4096 bits e adicionei uma frase secreta);
  • Chave pública carregada no servidor (antes para usuário sudo e depois para raiz);
  • Número de portas alterado
  • PermitRootLogin não, PubkeyAuthentication yes, PasswordAuthentication no.

Desta forma:

  • Se eu tentar fazer login como usuário root ou sudo e não tiver chave particular em Putty, eu tenho "Desconectado: não há métodos de autenticação suportados disponíveis (servidor enviado: publickey)", nenhuma senha foi solicitada;
  • Se eu tentar logar como root + key private = ele pergunta a senha, mas depois o erro "Servidor recusou assinatura de chave pública apesar de aceitar a chave" e "Desconectado";
  • Se eu tentar com o sudo user + key private + correct passphrase = posso fazer o login

Agora, o acesso ao SSH deve ter 99% de certeza, certo?

Muito obrigado

    
por 27.08.2014 / 15:00

Tags