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.
id_rsa
você possui? Eu esperariassh-copy-id
falhar com uma mensagem de erro do jeito que você a chama, pois espera que um arquivo termine com.pub
. Como o seu termina com.bak
ele provavelmente usariaid_rsa.pub.bak.pub
.Respostas:
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:
Em seguida, reinicie o serviço:
Copie sua chave pública:
Tente fazer login novamente, nenhuma senha deve ser necessária.
Desative a autenticação de senha.
fonte
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:
ssh-copy-id
- permitirá especificar uma chave diferente se você estiver no processo de substituir a antiga, por exemplo.~/.ssh/authorized_keys
para acrescentar sua chave manualmente.fonte
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.
fonte