Erro na migração de Container
Antes de mais nada, falaremos da correção do erro “Migration aborted. Can’t connect to destination address using public key” ou “Permission denied publickey password” quando vamos migrar uma VM ou container LXC entre hosts Proxmox. Então teremos o erro Migration Aborted in Proxmox.
Essa falha gera os erros:
- Load key “/root/.ssh/id_rsa”: invalid format
- TASK ERROR: migration aborted
- ERROR: migration aborted (duration 00:00:00)
- Can’t connect to destination address using public key
Problemas de Chave Pública podem gerar uma série de falhas de comunicação de serviços essenciais no Proxmox. Por exemplo, uma simples cópia de container ou VM entre dois nós de um cluster PVE.
Antes de falar da correção deste problema, vamos entender o que é uma chave de acesso.
Criptografia de Chave pública (publickey)
Quando falamos de criptografia de chaves em servidores, roteadores, switches e basicamente maior parte dos elementos de rede, logo vem a nossa mente nosso querido acesso via ssh, ou PuTTY. Não esta pensar dessa forma, mas, temos uma série de conceitos importantes por trás dessa negociação de acesso seguro entre os elementos de uma rede.
Quando fazemos a chamada de uma máquina cliente, uma estação de trabalho, por exemplo, a um servidor host, no nosso caso o Proxmox, precisamos garantir que a comunicação entre nossa máquina e o servidor não seja interceptada. Sabemos o quão fácil é hoje em dia um sniffer de rede capturar pacotes. Abri-los e por consequência, ter acesso a dados. Com isso estes dados poderiam ser usados indevidamente.
Para resolver esse problema, usamos chaves públicas ou privadas. Quando negociadas entre a máquina cliente e o servidor, garante que todo pacote que passa na rede é criptografado. Desse modo, apenas o possuidor da chave é capaz de “abrir o cofre” com o conteúdo daquela informação que está trafegando.
Existem muitos tamanhos e algoritmos de chave. No entanto, no nosso contexto de Proxmox estamos falando do rsa, sistema de criptografia amplamente usado nos elementos de rede atuais.
Aviso antes de iniciar as correções
Abaixo é exibido um exemplo de falha gerada por erro de certificado assim como a respectiva resolução da falha em um ambiente Proxmox:
Observe que o Output log apresentará uma mensagem de erro semelhante à exibida abaixo.
Foque nas palavras-chave do problema para que se tenha o melhor entendimento se você está tratando do mesmo problema referido neste artigo. Importante deixar claro que qualquer alteração, ou qualquer problema devido às alterações citadas neste artigo são de responsabilidade única e exclusivamente sua, meu querido leitor. A RunbookBR se isenta de toda e qualquer responsabilidade pelo seu ambiente.
Neste ínterim, leia este artigo até o final antes de executar qualquer comando na interface shell do seu servidor. Recomendo também a leitura antes de fazer qualquer tipo de alteração nas chaves do sistema, conforme abordaremos a seguir.
Task Error: Migration Aborted – Error and Fix
Permission denied publickey password
Antes de mais nada, vamos fixar as palavras-chave que vão nos sinalizar que o problema se trata do assunto abordado neste artigo:
- Load Key, id_rsa e invalid format
- Permission Denied, publickey e password
- Error, migration aborted e duration 00:00:00
- “Can’t connect to destination address using public key”
- “TASK ERROR: migration aborted”
Por fim vamos à falha:
Error: Migration Aborted
Task viewer: CT 77104 – Migrate
OutputStatus
Stop
# /usr/bin/ssh -e none -o ‘BatchMode=yes’ -o ‘HostKeyAlias=RJOPIEPVE01’ [email protected] /bin/true
Load key “/root/.ssh/id_rsa”: invalid format
[email protected]: Permission denied (publickey,password).
ERROR: migration aborted (duration 00:00:00): Can’t connect to destination address using public key
TASK ERROR: migration aborted
Fix Migration Aborted
The Permission denied publickey password problem
Desse modo, o procedimento abaixo, quando executado em todos os nós envolvidos na falha, pode corrigir o problema:
Primeiro precisamos acessar o diretório onde estão armazenadas as chaves públicas do sistema:
#cd /root/.ssh
Agora, movemos a chave rsa para fins de guardar um backup da chave. Poderíamos simplesmente apagar, mas não recomendo:
Primeiro id_rsa
#mv id_rsa id_rsa.old
Em seguida, id_rsa.pub
#mv id_rsa.pub id_rsa.pub.old
Por fim, o arquivo de configuração
#mv config config.old
Para gerar novamente as chaves
#pvecm updatecerts
Um pouco mais sobre publickey RSA
Como funciona a publickey
É curioso saber que o sistema de criptografia RSA é um dos primeiros a surgir, mas, ainda hoje, é um dos mais utilizados e seguros. O RSA usa troca de chaves assimétricas, ou seja, usamos duas chaves para cifrar e decifrar as mensagens trocadas entre origem e destino da comunicação. Para dar um breve entendimento do que eu estou falando, o emissor cifra a mensagem através da chave publica negociada com o seu receptor que usa uma chave privada para decriptar a mensagem. Por se tratar de uma chave privada, apenas o receptor é possuidor dessa chave, então qualquer um que tentar abrir a informação, não obterá sucesso.
Qual tamanho de chave devo escolher?
Existem diversos tamanhos de chaves. É de extrema importância analisar e equilibrar o que se espera com relação a uma segurança adequada e uma performance satisfatória. O mais fácil dificilmente será o melhor. Podemos ver uma definição de que quanto maior o tamanho da chave, melhor ela será. Não acredite nisso, não é bem assim que as coisas funcionam na realidade. Precisamos entender que, quanto maior o tamanho da chave, menos performática será a sua comunicação. Não queremos expor nosso sistema. Mas também não podemos sofrer com degradação de performance então precisamos entender e escolher sempre com muito cuidado o tamanho de chave que vamos usar.
Qual o risco quando utilizo publickey de 1024 ou 2048 bits?
Nesse contexto, para chaves de 1024 bits, por exemplo, acredita-se poder decifrar uma mensagem em 10 à 15 anos em média. Quando usamos chaves de 2048 bits, para citar outro exemplo, essa estimativa aumenta de maneira assombrosa. Assim, passando do 20 mil anos de estimativa para decifrar uma única mensagem. Existem cifras maiores, mas daí temos todo o contexto de pesar a questão da confiabilidade vs o desempenho. Quanto maior a chave, maior o custo operacional para troca das informações pelas partes envolvidas.
Referencia publickey RSA
Algumas das informações expostas acima podem ser consumidas na wikipedia. Não é a única fonte de consulta que recomendo, mas já serve como uma ótima leitura inicial sobre o assunto.
Em breve a RunbookBR estará lançando um material completo sobre o tema: segurança da Informação. Falaremos, assim, muito sobre essa questão de chaves públicas e privadas.
Conclusão, Permission denied publickey password
Este artigo falou um pouco sobre chaves publicas. No entanto, o objetivo principal era a solução de um problema mapeado em um servidor Proxmox com a publickey. Esse problema pode acontecer por diversos motivos, mas normalmente gerado pela má administração do ambiente ou mudanças não planejadas. Desse modo, te convido a acompanhar a Jornada Proxmox da RunbookBR. Assim poderemos juntos montar um ambiente de alta disponibilidade da maneira certa, garantindo assim o HA dos nossos serviços em produção.
Por fim, espero que tenha ajudado. Até a próxima.