RESOLVIDO Foi o grupo gravável em user_B
s home diretório, que me enganou.
Estou ficando sem ideias sobre isso. Cada sugestão seria muito apreciada.
Considere esta configuração:
- Um servidor
S
executando Ubuntu, usuáriosboldewyn
,user_A
euser_B
- Dois laptops
A
eB
, cada um com um usuário localboldewyn
(tem umid_rsa
chave para entrarS
) e uma segunda chaveid_rsa_A
/id_rsa_B
. Todas as chaves são armazenadas em/home/boldewyn/.ssh
. Ambos rodando o Ubuntu. user_A
euser_B
emS
tem senhas vazias, o login deve ser possível somente via publickey 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 o login de qualquer laptop como
boldewyn
(usandoid_rsa
eS:/home/boldewyn/.ssh/authorized_keys
Faça login no laptop
A
como usuáriouser_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 user_B
. Não consigo fazer login S
porque, por algum motivo, a chave não é aceita eo prompt de senha é enviado ( user_B
não tem senha, isso não é uma opção).
O que eu verifiquei:
No laptop
B
:- Verificou os direitos de
~/.ssh
e todo o seu conteúdo - colocar parte pública de
id_rsa_B
emboldewyn
s.authorized_keys
essh -i id_rsa_B boldewyn@S
: funciona (a chave não está corrompida ou assim) ssh -vvv
: Bem, não é realmente útil: Apenas me diz em um ponto, que ele pulapublickey
método agora. Nenhuma razão dada.
- Verificou os direitos de
No servidor
S
:- Tridimensional
user_B
s.authorized_keys
Arquivo - Verificou os direitos de
/home/*/.ssh
e todo o seu conteúdo (especialmente comparadouser_A
euser_B
) - Verificado que
$HOME
está definido (viasudo -u user_B -i
) - Verificado, que todos os usuários estão em
/etc/ssh/sshd_config
sAllowUsers
(eAllowGroups
, a propósito)
- Tridimensional
Outras coisas:
A única diferença que eu posso fazer entre user_A
e user_B
é que eu criei o último com adduser -M
(não crie um diretório inicial; ele já existia antes). No entanto, eu verifiquei /home/user_B
e todas as crianças relevantes são de propriedade de user_B
e seu grupo primário.
sshd
em S no modo de depuração:sudo sshd -rdp 1234
- geralmente ajuda. (-p 1234
é a porta temporária para a qual você fará o SSH.)/home/user_B
(assim como/home/user_B/.ssh
e/home/user_B/.ssh/authorized_keys
) as permissões apropriadas não eram graváveis, exceto para o usuário, ou seja, o modo 755 ou mais restritivo?user_A
s case (working) com os parauser_B
(não está funcionando). Eles são exatamente os mesmos (além da propriedade de arquivos, obviamente).Respostas:
Você checou três vezes
/home/user_B
(assim como/home/user_B/.ssh
e/home/user_B/.ssh/authorized_keys
) tinha as permissões adequadas: não gravável, exceto para o usuário , ou seja, modo 755 ou mais restritivo?fonte
Acho que isso 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 foi usada no processo de geração. Você pode tentar apenas pressionar a tecla Enter quando for solicitada uma frase secreta. Copie a parte do pub dessa chave para o Ubuntu. Certifique-se de excluir a entrada incorreta no arquivo .ssh / authorized_keys. Um segundo pensamento: se catar o arquivo de publicação, certifique-se de usar uma & gt; & gt; (acrescentar) em vez de & gt; (substitua_ quando você copiar o arquivo pub para o arquivo authorized_keys. (cat id_rsa.pub & gt; & gt; .ssh / authorized_keys).
Estou um pouco surpresa. Eu usei meus métodos no trabalho, usando o Solaris e o Cygwin, e em casa no meu Linux Lan, que era composto por Centos, Slackware, Debian e Ubuntu. É possível que sua chave privada não corresponda à pública? Quando você gera suas chaves, você obtém um par, o púbico será copiado tradicionalmente para o arquivo .ssh / authorized keys sob o 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 será emparelhada com a antiga pública. Percebo que você parece ter uma pasta .authorized_keys no diretório inicial. Eu nunca tentei isso. Eu acho que o posicionamento normal está na pasta /home/user_name/.ssh/authorized_keys. Eu nunca tive problemas ao usar qualquer versão do Solaris de aproximadamente 6 em diante, Freebsd e várias iterações e sabores do Linux. Boa sorte
Alan
fonte
boldewyn
s conta.