EC2: várias chaves ssh para uma instância?

11

É possível criar mais de uma chave privada para o SSH em uma instância do EC2? Qual é a melhor prática geral para isso? Temos vários usuários que precisam do SSH nos servidores e a distribuição de uma chave simplesmente não funciona bem. Isso não nos permite remover usuários do SSH para o servidor, a menos que alteremos a chave e redistribua.

    
por imaginative 12.08.2011 / 03:24

3 respostas

5

Absolutamente; basta colocar todas as chaves públicas relevantes na imagem e você deve estar certo para ir. Eu prefiro usar um sistema de gerenciamento de configuração para gerenciar chaves SSH; Dessa forma, é bastante trivial revogar o acesso de um usuário mesmo em sistemas em execução. Há também muito mais ... digamos "imaginativo" ... maneiras de lidar com isso, como armazenar todas as chaves SSH no LDAP, que centralizam as chaves SSH como qualquer outra credencial.

    
por 12.08.2011 / 03:29
6

Você também pode usar mecanismos ssh padrão. A melhor abordagem seria se o usuário executasse em sua máquina ssh-keygen para gerar seu par de chaves. Em seguida, eles lhe enviarão ~/.ssh/id_rsa.pub (ou id_dsa.pub, dependendo do algoritmo escolhido) e você adicionará seu conteúdo ao .ssh/authorized_keys no host de destino no diretório inicial da conta de usuário que eles devem poder acessar. Pode haver mais de uma chave no arquivo. Um por linha. E isso é tudo! A mesma chave pública (id_rsa.pub) pode ser usada em qualquer número de hosts - sempre identificará o usuário.

Você também pode fazer isso de outra maneira - você executa o ssh-keygen e envia ~ / .ssh / id_rsa (ou id_dsa) para o usuário. E o usuário salva o arquivo em ~ / .ssh / id_rsa. Só precisa se lembrar de alterar as permissões para 600 (-rw -------) desse arquivo, caso contrário, o ssh não o aceitará. Isso é obviamente menos seguro, já que a chave privada está sendo distribuída por e-mail, provavelmente.

Isso também pode ser feito no PuTTY com o PuTTYgen.

    
por 12.08.2011 / 12:04
1

Uma maneira mais simples é mostrada abaixo.

Para usuários de Linux / Mac:

  1. Para criar chaves públicas e privadas, use o seguinte comando: $ ssh-keygen -t rsa -b 4096

  2. Carregue a chave pública em uma pasta no seu intervalo do S3. Por exemplo: S3 > MyBucket > Keypair

  3. Salve e proteja sua chave privada.

Para usuários do Windows:

  1. Use o puttygen para gerar as chaves.
  2. Siga DigitalOcean para criar chaves SSH.
  3. Envie a chave pública para S3 > MyBucket > Keypair
  4. Salve e proteja sua chave privada.

As etapas a seguir são importantes durante o lançamento de qualquer AMI do Linux.

  1. Certifique-se de que a função do IAM tenha uma função criada com a política do AmazonS3FullAccess. Isso permite que a instância assuma uma função para acessar os buckets do S3. Isso é necessário para ler as chaves públicas do S3 e copiá-las para o perfil do usuário

  2. Adicione o seguinte código na seção de dados do usuário em Configurar detalhes da instância > Detalhes avançados (como texto):

    #!/bin/bash
    usermod user 1
    usermod -aG wheel user1
    mkdir /home/user1/.ssh/
    aws s3 cp s3://MyBucket    /Keypair/user1-pub.pub /home/user1/.ssh/authorized_keys
    
    useradd user2
    usermod -aG wheel user2
    mkdir /home/user2/.ssh/
    aws s3 cp s3://MyBucket   /Keypair/user2-pub.pub /home/user2/.ssh/authorized_keys
    
    sudo -i 
    echo “user1 ALL=(ALL) NOPASSWD:ALL” >> /etc/sudoers
    echo “user2 ALL=(ALL) NOPASSWD:ALL” >> /etc/sudoers
    
    yum update -y
    

Essa configuração cria User1 e User2 e os adiciona aos usuários sudo . O comando aws s3 cp copia as chaves públicas dos usuários da pasta S3 para seus .ssh/authorized_keys path . A última seção é executar comandos como admin sem precisar de senhas.

Há muitas melhorias de segurança que podem ser recomendadas aqui. Embora não seja explicitamente usado neste exemplo, limitar o acesso ao bucket do S3 a um bucket específico e conhecer as implicações de segurança de desativar o uso de senha no sudo, são poucas coisas que podem ser destacadas. Use-os com sabedoria, com base em suas necessidades particulares.

    
por 03.03.2017 / 09:16