Como configurar um servidor ssh do linux para autenticar com mais de uma chave ssh?

1

Estamos usando o servidor Amazon EC2 que, por padrão, usa uma chave ssh para autenticar. Queremos dar acesso a outro usuário no servidor, mas não queremos fornecer nossa chave inicial. Por isso, queremos criar uma segunda chave que possamos remover mais tarde. Existe alguma maneira de aceitar mais de uma chave?

Esta postagem é muito útil para definir as primeira chave .

    
por Geo 07.08.2009 / 15:16

2 respostas

7

Você pode ter várias chaves autorizadas configuradas para cada conta de usuário. Simplesmente crie o par de chaves pública / privada da mesma maneira, exceto no final, execute este comando:

cat id_rsa.pub >> ~/.ssh/authorized_keys

Onde id_rsa.pub é qualquer nome de arquivo para o qual a nova chave é criada. Agora, se você olhar no arquivo authorized_keys, verá as duas chaves públicas listadas, uma por linha.

E, para deixar claro, isso permitirá que ambas as chaves sejam usadas para fazer login na mesma conta de usuário. Se você quiser que essa pessoa tenha acesso auditável ao sistema, recomendo criar um novo usuário. Embora ainda esteja usando a chave pública para acesso.

    
por 07.08.2009 / 15:23
2

Usando o puttygen, gere uma chave. Eu uso RSA, SSHv2 keys @ > 2048 bits pessoalmente, mas a escolha é sua.

Em seguida, localize a função em puttygen, que permite exportar um par de chaves públicas e privadas do OpenSSH. Pegue a chave pública e anexe-a ao final de ~ / .ssh / authorized_keys no servidor, certificando-se de remover todas as chaves que você adicionou anteriormente que não estão no formato OpenSSH (ou seja, as chaves Putty que você mencionou no seu comentário anterior ).

Faça isso várias vezes para as diferentes chaves que você deseja acessar no servidor. Pagent em sua caixa local contém a chave privada, mas pode querer ler o arquivo .PPK em vez do arquivo de chave privada que você exportou.

Por favor, note que, uma vez que qualquer um dos usuários tenha logado, eles podem alterar o arquivo authorized_keys e bloquear o outro usuário. Em outras palavras, isso não é uma configuração focada em segurança, e não há muito o que fazer para fazer isso. Suas únicas opções são limitar os comandos que um usuário pode executar e não dar a eles um shell ("man authorized_keys" e procurar as seções que falam sobre "command=" e "no-pty"), ou perguntar ao sysadmin do servidor para realocar onde a authorized_keys está localizada (a configuração AuthorizedKeysFile em / etc / ssh / sshd_config).

Caso contrário, forneça a ambos os usuários um login separado e use as ACLs de propriedade de arquivo de usuário / grupo do servidor para o efeito completo. Isso é provavelmente o melhor, para ser honesto ...

    
por 07.08.2009 / 16:21