A senha do Windows não será descriptografada no AWS EC2, mesmo com a chave privada correta

16

Eu criei uma nova instância do Windows no AWS EC2, usando um par de chaves que criei enviando minha chave pública da minha máquina local.

A instância foi iniciada corretamente, mas não irá descriptografar a senha. Relata:

Achaveprivadadevecomeçarcom"----- INICIAR CHAVE PRIVADA RSA -----" e finalizar com "----- TERMINAR CHAVE PRIVADA RSA -----"

Tenho certeza de que enviei a chave correta. Confirmei que as impressões digitais correspondem ao formato de impressões digitais estranho que a AWS usa . Mas isso não vai decifrar.

Eu tentei fazer o upload do arquivo de chave e colá-lo no formulário.

Eu acabei descobrindo que não está removendo a nova linha e excluí a linha em branco na chave. Isso só me leva a um novo erro quando clico em "Decrypt Password", no entanto:

    
por Craig Ringer 10.06.2014 / 06:44

5 respostas

18

O gerenciamento de chaves do AWS EC2 não atende às chaves privadas SSH que possuem senhas definidas (são criptografadas). Ele não detecta isso e simplesmente falha com um erro não informativo.

Se a sua chave privada for armazenada criptografada no disco (como deveria ser, IMO), você deve descriptografá-la para colá-la no console da AWS.

Em vez de fazer isso, considere descriptografar a senha localmente, para que você não precise enviar sua chave privada para a AWS. Obtenha os dados da senha criptografada (codificado em base64) do log do servidor após a inicialização ou usando get-password-data ou os pedidos de API correspondentes.

Você pode então decodificar e descriptografar o resultado com base64:

base64 -d /tmp/file | openssl rsautl -decrypt -inkey /path/to/aws/private/key.pem

(as chaves privadas OpenSSH são aceitas por openssl rsautl ).

O problema de não conseguir lidar com chaves protegidas por senha com um erro útil também afeta o comando ec2-get-password .

Veja também:

por 10.06.2014 / 06:44
3

Sem o uso de jq, isso ainda é possível, mas requer alguma análise adicional dos dados retornados.

aws ec2 get-password-data "--instance-id=${instance_id}" --query 'PasswordData' | sed 's/\"\r\n//' | sed 's/\r\n\"//' | base64 -D | openssl rsautl -inkey ${my_key} -decrypt
    
por 31.03.2016 / 21:15
2

No meu Mac, os argumentos da linha de comando para base64 são diferentes.

Isso funcionou para mim:

base64 -D -i /tmp/file | openssl rsautl -decrypt -inkey /path/to/key.pem
    
por 13.10.2015 / 20:25
2

Isso é o que funcionou para mim no macOS:

openssl rsa -in $HOME/.ssh/aws-remote -out /Users/home/desktop/unencrypted-rsa.txt

É importante que você saiba se o seu arquivo .pem está criptografado com uma senha, procurando pela linha a seguir. Se estiver presente, você precisa descriptografá-lo antes de usá-lo com a Amazon:

Proc-Type: 4,ENCRYPTED
    
por 13.05.2018 / 19:47
0
  1. ir para o painel ec2
  2. elimine a chave existente
  3. crie um novo par de chaves
  4. escolha um nome
  5. faça o download e mantenha-o no local
  6. instale a instância e faça o download da sua cópia da instância do windows
  7. nomeie o novo par de chaves com o nome usado na etapa 4
  8. use essa chave recém-gerada para descriptografar a senha

isso funcionará

    
por 21.09.2018 / 10:33