Mesmos chaves ssh duas máquinas diferentes se comportam diferentemente (prompt de senha)?

0

Obrigado, mas acho que não transmiti o problema corretamente. Deixe-me descrever o problema novamente. Vamos supor que a chave seja chamada "ssh-rsa AAAAB3Nxyz user @ laptop". Agora, estas são as configurações atuais:

No meu laptop ~ / .ssh / id_rsa.pub contém -
ssh-rsa AAAAB3Nxyz usuário @ laptop
No Servidor B ~ / .ssh / id_rsa.pub contém -
ssh-rsa AAAAB3Nxyz usuário @ laptop
No Servidor A ~ / .ssh / authorized_keys contém -
ssh-rsa AAAAB3Nxyz usuário @ laptop

Agora, quando eu ssh do meu laptop (no servidor A) não há nenhum prompt de senha . Mas quando eu ssh do servidor B (no servidor A) eu recebo o seguinte -
Digite a senha para a chave '~ / .ssh / id_rsa':

Quando eu digito a senha, posso fazer o login. Mas eu não quero o prompt de senha no Servidor B. Eu não entendo porque há essa diferença no comportamento. Por que o Servidor B não pode acessar o Servidor A sem um prompt de senha enquanto, com a mesma chave, meu laptop consegue acessar o Servidor A sem um prompt de senha. Eu verifiquei todas as permissões, elas estão bem. Espero que isso esteja claro. Obrigado.

    
por Durai Arasan 09.03.2018 / 17:03

1 resposta

3

Você nunca precisa copiar todo o diretório ~/.ssh , apenas o conteúdo da parte pública de sua (s) chave (s). O mais fácil de fazer assumindo que a autenticação por senha esteja ativada seria

user@darkstar ~ $ ssh-copy-id remoteusername@remotehostname

E deixe o ssh se preocupar em colocar tudo no lugar certo.

Se você precisar fazer isso manualmente, ou se você não tiver uma senha de autenticação e você deve ter o sysadmin colocar a chave no lugar, etc, então você precisa copiar o arquivo ~/.ssh/id_rsa.pub . Uma vez que esteja na máquina remota, simplesmente adicione o conteúdo a qualquer coisa que já esteja no arquivo ~/.ssh/authorized_keys sob a conta de usuário apropriada. Um simples cat id_rsa.pub >> ~/.ssh/authorized_keys funcionará.

Por fim, você deseja garantir que as permissões na chave privada, o arquivo authorized_keys e os diretórios ~/.ssh em ambas as máquinas estejam definidos adequadamente - o diretório ~/.ssh deve ser definido como 0700 e os arquivos dentro de deveria ser 600.

Para corrigir seu problema , faça o login na máquina remota, renomeie o diretório ~/.ssh existente para outra coisa, recrie-o e defina as permissões corretamente, efetue logout e use o ssh-copy-id de cima. Nesse ponto, você deve poder usar ssh usando sua chave e qualquer frase secreta associada a ela.

Editar para uma pergunta atualizada Você está sentindo falta do conceito de par de chaves que eu acho. Pense nas fechaduras das portas das casas - para que uma chave abra todas elas, elas têm que ter o mesmo alfinete no interior.

O arquivo id_rsa.pub para qualquer combinação entra no arquivo authorized_keys na máquina remota. Para que essa chave funcione, você deve ter a chave privada correspondente na máquina da qual está se conectando. Você pode lidar com várias chaves colocando-as em arquivos diferentes e usando a opção -i para ssh (et al) para especificar qual chave privada se conectar.

Portanto, usando suas informações, você precisa obter o arquivo de chave privada do laptop (provavelmente ~/.ssh/id_rsa ) e colocá-lo no Servidor B, chamá-lo de algo como ~/.ssh/laptop_id_rsa ). Quando você ssh do Servidor B para o Servidor A, você pode fazer com ssh -i ~/.ssh/laptop_id_rsa user@serverA . Se você quiser ssh de A para B, repita o processo colocando a chave privada em A. Alternativamente, você pode usar o servidor B como um host / túnel de salto, assim que você se conectar lá com as opções corretas, você pode Servidor A. Isso mantém seu arquivo de chave privada somente em seu laptop (bom para segurança, você não quer cópias flutuando, especialmente com uma senha sem senha!)

Você provavelmente também desejará configurar um arquivo ~/.ssh/config para poder simplesmente fazer ssh serverA e fazer com que ele use o nome de host, porta, nome de usuário, arquivo de identidade, etc.

    
por 09.03.2018 / 18:11

Tags