ssh-copy-id - permissão negada (publickey) [fechada]

26

Eu quero configurar o túnel ssh para o servidor mysql que está no computador que possui uma máquina virtual. Além disso, o túnel precisa funcionar se a máquina for reiniciada.

Então vamos dizer A é um computador com software linux. B - máquina virtual no computador A.

O MySQL está em B.

C - é uma máquina virtual no computador A que deseja se conectar ao MySQL em B.

Agora, por este artigo: link

Eu tento copiar a chave pública para o servidor remoto. Eu acho que preciso copiá-lo para o computador A.

ssh-copy-id -i id_rsa.pub.bak [user]@[IP of A] -p [port of A]
Enter passphrase for key '/home/[user]/.ssh/id_rsa':
Permission denied (publickey).

Agora tentei inserir a senha do arquivo id_rsa.pub.bak. Negou.

Então eu vejo que ele usa a chave em /home/[user]/.ssh/id_rsa que é diferente da chave pública que estou tentando copiar, quero dizer, é claro, que a chave privada é diferente, mas eu quero dizer que eu copio public chave de outra chave privada. Então eu tentei usar a senha dele. Também negado.

Como eu poderia depurar por que a frase secreta é negada?

Atualizar

Com base nos comentários, criei um novo arquivo público chamado id_rsa.pub, onde tudo está em uma linha agora

e execute e ainda receba erros.

ssh-copy-id -i id_rsa.pub [host and port] -vvv
Enter passphrase for key '/home/[user]/.ssh/id_rsa':
Permission denied (publickey).

Atualizar

Verificamos as permissões na pasta .ssh e no arquivo authorized_keys no computador A - elas são 700 e 600, então o comentário diz que elas são boas.

Atualizar

Tentei configurar a autenticação por senha sim em Um computador e reiniciar o serviço. Reiniciar como pela resposta não funcionou, ele escreveu sshd não reconhecido, então eu reiniciei usando:

sudo /etc/init.d/ssh restart

Em seguida, tente novamente na máquina C para copiar para uma máquina.

ssh-copy-id -i id_rsa.pub [user@host] -p [port] -v

e continua o mesmo:

Enter passphrase for key '/home/[user]/.ssh/id_rsa':
Permission denied (publickey).

Se eu for copiar a chave manualmente para authorized_keys, vejo que a chave pública já existe, a mesma que desejo copiar. Eu perguntei ao meu colega de trabalho, ele disse que não copiou. Então eu nem entendo como isso pode estar lá.

Ok, se estiver lá, seria bom, mas permanecendo lá não me deixa conectar com o ssh sem digitar a frase secreta. Mas eu consegui me conectar com a senha de entrada. Então, algo está claramente errado aqui. E a chave que estou tentando copiar é com senha vazia. Quando me conectei com o ssh - digitei a frase secreta que não estava vazia.

A mesma chave pública não aceita senhas vazias e não vazias, isso faz sentido. Mas por que a chave pública que estou tentando enviar é a mesma com a do arquivo authorized_keys se as senhas forem diferentes? Eu não marquei todos os personagens, mas é improvável que as chaves sejam tão semelhantes que o início e o final sejam os mesmos, mesmo quando a frase-senha é diferente.

    
por Darius.V 21.04.2015 / 15:21

3 respostas

4

Encontrou o problema finalmente.

Na verdade, não precisei copiar a chave pública. A mesma chave pública é para ambas as chaves privadas - com senha e sem senha. Eu pensei que eu tenho chave privada sem passphrase, mas na verdade eu não fiz. Eu tinha apenas .ppk sem senha. Isso foi falta de comunicação. Então, o colega de trabalho fez a chave privada sem passphrase e agora eu poderia logar usando ssh sem passphrase. Eu li que ter sem senha é ruim, mas colega de trabalho diz que está ok. Eu precisava sem senha, porque eu preciso executar o script de shell na reinicialização - eu quero começar o autossh na reinicialização do computador.

Assim, o tipo de solução é o seguinte: se você quiser fazer o login sem senha, verifique se sua chave privada está sem senha realmente.

    
por 22.04.2015 / 09:18
20

Você realmente precisa fazer o login para copiar sua chave, você não tem nenhum acesso à máquina remota (chave inválida e autenticação de senha desabilitada):

Reabilite a autenticação passwd em / etc / ssh / sshd_config:

PasswordAuthentication yes

Em seguida, reinicie o serviço:

service sshd restart

Copie sua chave pública:

ssh-copy-id -i ~/.ssh/id_rsa.pub USER@HOST -p PORT
[Enter user password]

Tente fazer o login novamente, não é necessária senha.

Em seguida, desative a autenticação por senha.

    
por 21.04.2015 / 16:43
9

Permission denied (publickey) é o servidor SSH remoto dizendo "Eu aceito apenas chaves públicas como um método de autenticação, vá embora".

Esse é o seu principal desafio: entrar no sistema remoto. Depois de fazer isso, você pode enviar sua chave:

  • Usando ssh-copy-id - ele permitirá que você especifique uma chave diferente se estiver no processo de substituir a antiga, por exemplo.
  • Edite o ~/.ssh/authorized_keys do usuário remoto para anexar sua chave manualmente.
por 21.04.2015 / 16:36