.png)
RESOLVIDO.Foi a parte gravável do grupo no user_B
diretório inicial que me enganou.
Estou ficando sem ideias sobre este. Cada dica seria muito apreciada.
Considere esta configuração:
- Um servidor
S
rodando Ubuntu, usersboldewyn
euser_A
user_B
- Dois laptops
A
andB
, cada um com um usuário localboldewyn
(possui umaid_rsa
chave para fazer loginS
) e uma segunda chaveid_rsa_A
/id_rsa_B
. Todas as chaves são armazenadas em/home/boldewyn/.ssh
. Ambos rodando Ubuntu. user_A
euser_B
comS
senhas vazias, o login deve ser possível apenas via chave pública e SSH.+--------+ +-------------------+ +--------+ | laptop | | server | | laptop | | A | | S | | B | | | | | | | +--------+ SSH +-------------------+ SSH +--------+ |id_rsa_A|------------|< user_A user_B >|------------|id_rsa_B| +--------+ +-------------------+ +--------+ |id_rsa |------------|< boldewyn >|------------|id_rsa | +--------+ +-------------------+ +--------+
O que funciona:
Faça login em qualquer laptop como
boldewyn
(usandoid_rsa
eS:/home/boldewyn/.ssh/authorized_keys
Faça login no laptop
A
como usuário (user_A
usandoid_rsa_A
eS:/home/user_A/.ssh/authorized_keys
:)ssh -i id_rsa_A user_A@S
Meu problema:No laptop, B
exatamente a mesma configuração falha para o user_B
. Não consigo fazer login S
, porque por algum motivo a chave não é aceita e vem o prompt de senha ( user_B
não tem senha, não tem opção).
O que eu verifiquei:
No portátil
B
:- Verificou os direitos
~/.ssh
e todo o seu conteúdo - coloque public parte de
id_rsa_B
inboldewyn
s.authorized_keys
essh -i id_rsa_B boldewyn@S
: funciona (a chave não está corrompida ou algo assim) ssh -vvv
: Bem, não é realmente útil: apenas me disse em um ponto quepublickey
agora ele pula o método. Nenhuma razão dada.
- Verificou os direitos
No servidor
S
:- Arquivo
user_B
s verificado três vezes.authorized_keys
- Verificou os direitos
/home/*/.ssh
e todos os seus conteúdos (especialmente comparadosuser_A
euser_B
) - Verificado se
$HOME
está definido (viasudo -u user_B -i
) - Verificado se todos os usuários estão em
/etc/ssh/sshd_config
sAllowUsers
(eAllowGroups
, a propósito)
- Arquivo
Outras coisas:
A única diferença que consigo encontrar entre user_A
e user_B
é que criei o último adduser -M
(não crie um diretório inicial; ele já existia antes). No entanto, verifiquei três vezes se isso /home/user_B
e todas as crianças relevantes pertencem user_B
a seu grupo principal.
Responder1
Você verificou isso três vezes/home/user_B
(assim como /home/user_B/.ssh
e /home/user_B/.ssh/authorized_keys
) tinham as permissões adequadas:não gravável exceto para o usuário, ou seja, modo 755 ou mais restritivo?
Responder2
Acho que pode estar relacionado à maneira como você gerou essas chaves. Eu tentaria novamente. As chaves são geradas com o recurso ssh-keygen. Talvez quando um conjunto de chaves foi gerado, uma senha longa foi usada no processo de geração. Você pode tentar apenas pressionar a tecla Enter quando for solicitada uma senha. Copie a parte pub dessa chave para o Ubuntu. Certifique-se de excluir a entrada incorreta no arquivo .ssh/authorized_keys. Um segundo pensamento: se for cat o arquivo pub, certifique-se de usar >> (anexar) em vez de > (substituir_ ao copiar o arquivo pub para o arquivo autorizado_keys. (cat id_rsa.pub >> .ssh/authorized_keys).
Estou um pouco surpreso. Usei meus métodos no trabalho, usando Solaris e Cygwin, e em casa em minha LAN Linux composta por Centos, Slackware, Debian e Ubuntu. É possível que sua chave privada não corresponda à pública? Ao gerar suas chaves, você obtém um par, o púbico será copiado tradicionalmente para o arquivo .ssh/authorized keys no diretório inicial da máquina de destino. Se você gerar novamente as chaves, o novo arquivo .pub deverá ser copiado. A nova chave privada não irá emparelhar com a antiga pública. Percebo que você parece ter uma pasta .authorized_keys no diretório inicial. Eu nunca tentei isso. Acho que o posicionamento normal está na pasta /home/user_name/.ssh/authorized_keys. Nunca tive problemas ao usar qualquer versão do Solaris a partir da versão 6, Freebsd e várias iterações e versões do Linux. Boa sorte
Alan