Chaves SSH públicas não funcionam para todos os usuários no mesmo servidor

2

Eu tenho um VPS no qual tenho vários "usuários" (todos eu, para coisas diferentes). Configurei minhas chaves públicas SSH locais e usei ssh-copy-id para copiar para todas elas. Eu sou capaz de fazer o login sem um aviso de senha apenas para alguns deles, e isso está me enlouquecendo.

Eu usei ssh -v [email protected] para um que funciona e outro que não funciona. O texto de saída é exatamente o mesmo até chegar ao final:

O que funciona é assim:

debug1: Next authentication method: publickey
debug1: Offering RSA public key: /home/tom/.ssh/id_rsa
debug1: Server accepts key: pkalg ssh-rsa blen 279
debug1: Authentication succeeded (publickey).
Authenticated to xxx.xxx.xxx.xxx ([xxx.xxx.xxx.xxx]:22).
debug1: channel 0: new [client-session]
debug1: Entering interactive session.
debug1: Sending environment.
debug1: Sending env LANG = en_US.UTF-8

O que não se parece com isso:

debug1: Next authentication method: publickey
debug1: Offering RSA public key: /home/tom/.ssh/id_rsa
debug1: Authentications that can continue: publickey,password,keyboard-interactive
debug1: Trying private key: /home/tom/.ssh/id_dsa
debug1: Trying private key: /home/tom/.ssh/id_ecdsa
debug1: Next authentication method: keyboard-interactive
debug1: Authentications that can continue: publickey,password,keyboard-interactive
debug1: Next authentication method: password

Eu verifiquei duas vezes se as permissões de chave e arquivo em authorized_keys são as mesmas para cada usuário e a pasta .ssh, mas por algum motivo o servidor não está aceitando a mesma chave exata, que é a mesma chave exata armazenada em o servidor.

Eu tentei reiniciar o daemon sshd, assim como o servidor.

    
por Tom Thorogood 01.08.2011 / 02:12

2 respostas

1

Acredito que você deve inspecionar seu arquivo authorized_keys no servidor. Na maioria dos sistemas onde eu vi o ssh-copy-id, é um script muito básico, com muita verificação de erros.

Em várias ocasiões, vi criar entradas duplicadas ou criar entradas quebradas no arquivo authorized_keys . Eu vi isso carregar uma chave diferente do que era esperado.

Para obter os melhores resultados ao usar ssh-copy-id , você deve usar a opção -i para identificar explicitamente a parte pública da chave que deseja enviar. Se você não escolher a opção -i, escolherá o primeiro arquivo de alguns locais, inclusive de um soquete de agente SSH.

Dedique alguns segundos para inspecionar o script ssh-copy-id no seu sistema e você quase certamente verá o que estou falando.

    
por 06.08.2011 / 07:27
1

Não é realmente uma resposta independente, mas não é suficiente para um comentário sobre a resposta da Zoredache.

Gostaria de acrescentar que, além de verificar as permissões e a propriedade do arquivo, do diretório e dos diretórios-pai, verifique o conteúdo do arquivo. Dependendo de como você construiu o arquivo, pode ser que a chave seja armazenada como várias linhas em vez de uma única linha.

Eu tive esse problema copiando e colando chaves de um arquivo para outro, e como as linhas têm o mesmo tamanho que o preenchimento automático do terminal, pode ser difícil de detectar.

    
por 12.06.2017 / 17:10

Tags