ssh-copy-id - permissão negada (chave pública) [fechada]


30

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

Então, digamos que A seja 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: http://www.thegeekstuff.com/2008/11/3-steps-to-perform-ssh-login-without-password-using-ssh-keygen-ssh-copy-id/

Eu tento copiar a chave pública para o servidor remoto. 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 digitar a senha do arquivo id_rsa.pub.bak. Negou.

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

Como depurar por que a senha é 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 erro.

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

Atualizar

Verifiquei as permissões na pasta .ssh e no arquivo allowed_keys no computador A - eles são 700 e 600, de modo que o comentário diz que eles são bons.

Atualizar

Tentei configurar a autenticação de senha sim em um computador e reinicie o serviço. Reiniciando como pela resposta não funcionou, ele escreveu sshd não reconhecido, então 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 ainda o mesmo:

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

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

Ok, se estiver lá, seria bom, mas, permanecendo lá, não me permite conectar-me ao ssh sem digitar a senha. Mas consegui me conectar com a digitação da senha. Então, algo claramente ainda está errado aqui. E a chave que estou tentando copiar é com uma senha vazia. Quando me conectei com ssh - digitei uma senha que não estava vazia.

A mesma chave pública não pode aceitar senha secreta vazia e senha não vazia, isso faz sentido. Mas então por que a chave pública que eu estou tentando enviar é a mesma que a do arquivo allowed_keys se as senhas são diferentes? Eu não verifiquei todos os caracteres, mas é improvável que as chaves sejam tão parecidas que o início e o final sejam os mesmos, mesmo que a frase secreta seja diferente.


Quais arquivos começando com id_rsavocê possui? Eu esperaria ssh-copy-idfalhar com uma mensagem de erro do jeito que você a chama, pois espera que um arquivo termine com .pub. Como o seu termina com .bakele provavelmente usaria id_rsa.pub.bak.pub.
N

@nlu - Eu tenho o id_rsa que copiei arrastando e soltando o arquivo usando o bloco de notas ftp explorer. Também tenho o id_rsa.bak que criei com nano e colei o conteúdo com o mouse no bloco de notas ++, mas parecia que ele produzia o mesmo texto, mas de alguma forma duas colunas. E também tenho id_rsa.pub.bak que também fez com o nano. Na verdade, tem 3 linhas, mas o original tem tudo em uma linha. Não sei se isso importa. Mas, como vemos, não recebi mensagens de erro sobre nomes de arquivos.
Darius.V

11
Faz. Veja aqui por exemplo: snailbook.com/faq/publickey-userauth.auto.html ("Se você usar um editor de texto, tome cuidado para que ele não quebre as linhas deste arquivo.").
N

A pergunta está encerrada porque eles acham que não é um sistema no ambiente de negócios, mas eu estava resolvendo um problema no ambiente de negócios.
precisa saber é o seguinte

Respostas:


25

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

Reative a autenticação de senha 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 login novamente, nenhuma senha deve ser necessária.

Desative a autenticação de senha.


E se eu definir PasswordAuth como yes no servidor no qual desejo fazer login e puder conectar-me à massa usando a senha, mas o ssh-copy-id ainda não solicitar a senha e apenas escrever Permissão negada (chave pública). ?
#

ei, eu quero dizer obrigado !!! você salvou meu dia !!! Muito obrigado!!!
尤川豪

Graças ao @Nabil, isso também funciona a partir do Ubuntu 18.04. Apenas um aviso para futuros leitores: Edite / etc / ssh / sshd_config conforme as instruções e NÃO ssh_config, supervisionando (como eu fiz!). Além disso, o ssh-copy-id USER @ HOST é evidentemente suficiente.
Snidhi Sofpro 30/10

12

Permission denied (publickey) é o servidor SSH remoto dizendo "Eu só aceito chaves públicas como 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- permitirá especificar uma chave diferente se você estiver no processo de substituir a antiga, por exemplo.
  • Edite o usuário remoto ~/.ssh/authorized_keyspara acrescentar sua chave manualmente.

5

Finalmente encontrei o problema.

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 tinha chave privada sem senha, mas na verdade não. Eu tinha apenas .ppk sem senha. Isso foi falta de comunicação. Então, o colega de trabalho criou a chave privada sem a senha e agora eu poderia entrar usando o ssh sem a senha. Eu li que ter sem senha é ruim, mas o colega de trabalho diz que está tudo bem. Eu precisava sem a senha, pois preciso executar o shell script na reinicialização - quero iniciar a inicialização automática na reinicialização do computador.

Então, esse tipo de solução é desta vez - se você deseja fazer login sem senha - verifique se sua chave privada está realmente sem senha.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.