Permitindo o acesso de múltiplos usuários SSH à instância do Ubuntu em execução no Amazon Web Services

5

Parece que perguntas semelhantes foram feitas antes, mas a questão que estou tendo não foi levantada ou respondida como parte das respostas dadas às outras perguntas. Então ...

Estou usando uma instância do Amazon EC2 que está executando o Ubuntu e já descobri como obter acesso SSH com o PuTTY com o login "ubuntu". Imaginei que poderia simplesmente fazer alguns useradds e, em cada uma das pastas iniciais dos outros usuários, adicionar ".ssh / authorized_keys" como era na pasta inicial do "ubuntu" e, em seguida, usar o SSH nos outros nomes de usuário (mas a mesma chave privada) funcionaria sem problemas - isso não aconteceu (recebi a mensagem "Servidor recusou nossa chave").

Parece haver algo que desconheço sobre como o emparelhamento de chaves SSH funciona ... alguma idéia?

Resumo rápido:

  • acesso SSH com PuTTY usando "ubuntu" como nome de usuário - funciona bem.
  • A criação de outros usuários, copiando ".ssh / authorized_keys" da pasta principal "ubuntu" para outras pastas iniciais do usuário, e SSH com a mesma chave privada (login com nome de usuário diferente) - não funciona. Receber mensagem "Servidor recusou nossa chave".

UPDATE: Eu editei o arquivo '/ etc / ssh / sshd_config' para remover o comentário da linha:

AuthorizedKeysFile %h/.ssh/authorized_keys

(que eu não percebi foi comentado por padrão), mas ainda sem sorte. Apenas pensei em mencioná-lo se isso fosse uma sugestão ...

UPDATE2-IMPORTANTE: Graças à resposta de Nikolay, percebi que tinha ignorado as permissões do arquivo. Embora as permissões não fossem exatamente o problema (eu acho), acontece que quando eu usei sudo para copiar '.ssh / authorized_keys' para as outras pastas de usuários adicionadas, o proprietário da pasta recém-criada e o arquivo era, na verdade, root . A questão parece ser agora - como posso alterar o proprietário da pasta / arquivo (como um usuário não-root provavelmente não seria capaz de verificar uma chave que pertence a root )? Eu vou fazer uma pesquisa para ver se isso surge com a resposta ...

UPDATE3-IMPORTANTE: alterei a permissão para '.ssh' e 'authorized_keys', bem como para o proprietário e o grupo de raiz para otheruser , mas ao usar o nome de usuário otheruser ao tentar SSH, ainda recebo a mensagem "Server refused our key". Desculpe eu adicionei prematuramente a seção respondida ... a resposta fornecida parecia (e ainda parece) a resposta correta, logicamente falando, então eu disse que foi respondida antes de eu testar ...

UPDATE4-IMPORTANTE: A resposta de Nickolay é de fato correta (o que eu disse que não estava no UPDATE3). Meu problema (depois que eu segui a resposta de Nickolay) não estava realmente relacionado a quaisquer ressalvas de SSH. Quando criei a conta otheruser , acidentalmente especifiquei o shell como /bin/bash/ em vez de /bin/bash (observe o extra / ). Eu me deparei com isso porque todo o trabalho que eu fiz foi da conta "ubuntu", e depois de ficar frustrado eu tentei logar em outro usuário após o SSHing com o Ubuntu - que retornou o erro "Não é possível executar / bin / bash /: diretório". Depois de alterar o shell com chsh -s /bin/bash otheruser , consegui fazer login no otheruser do Ubuntu, mas o mais interessante isso me permitiu usar o SSH otheruser como o usuário sem receber a mensagem "Server refused our key" . Então ... a incapacidade de instanciar um shell para usar de alguma forma retornou como uma mensagem de chave recusada. Há algum lugar que eu deveria talvez chamar a atenção para isso ...? De qualquer forma, obrigado novamente ao Nickolay.

RESPONDIDO: A resposta de Nickolay cobre o que precisa ser feito nessa situação, incluindo o uso do comando chown para alterar a propriedade da pasta / arquivo, como é mencionado, desde link sob sua resposta. (Eu também usei o comando chgrp porque o grupo também era root)

Aqui estão os passos que eu usei (você pode ter que começar esses comandos com sudo ):

  • chmod ir-w outro usuário outro usuário / .ssh
  • chmod 600 otheruser / .ssh / authorized_keys
  • chown 'otheruser' otheruser / .ssh
  • chown 'otheruser' otheruser / .ssh / authorized_keys
  • chgrp 'otheruser' otheruser / .ssh
  • chgrp 'otheruser' otheruser / .ssh / authorized_keys

NOTA: Os dois últimos comandos são para alterar o grupo ao qual a pasta '.ssh /' e o arquivo 'authorized_keys' estão associados. Você pode querer que eles sejam outra coisa, mas eu queria mantê-los consistentes com os outros arquivos / pastas na pasta base do usuário.

    
por MandM 16.01.2013 / 19:27

1 resposta

1

Você também deve definir as permissões corretas para a pasta .ssh e authorized_keys: chmod 700 ~ / .ssh & & chmod 600 ~ / .ssh / authorized_keys Além disso, o proprietário desses arquivos deve ser o mesmo que o usuário que está tentando fazer login.

    
por 16.01.2013 / 19:45