Você pode verificar a impressão digital usando o console da AWS para instâncias com o cloud-init.
O seguinte está em uma instância executando o Amazon Linux.
Existe um script init.d chamado cloud-init:
cloud-init is the distribution-agnostic package that handles early initialization of a cloud instance.
Some of the things it configures are:
- setting a default locale
- setting hostname
- generate ssh private keys
- adding ssh keys to user's .ssh/authorized_keys so they can log in
- setting up ephemeral mount points
- preparing package repositories and performs a variety of at-boot customization actions based on user-data
Depois de iniciar uma instância, você pode visualizar a saída do log do sistema por meio do console da AWS sem usar o SSH. (O que evita o seu catch-22 - você pode ver a impressão digital antes de acessar a instância).
Você pode fazer isso por
-
acessando a página Console de gerenciamento do EC2 ,
-
clique no link "Instâncias" na barra lateral,
-
selecionando a instância na qual você deseja fazer login e
-
navegando para Ações > Configurações da instância > Obtenha o log do sistema.
Sevocêpercorreressasaída,veráalgocomooseguinte:
Runningcloud-init...cloud-init:sshGeneratingpublic/privatersakeypair.Youridentificationhasbeensavedin/etc/ssh/ssh_host_rsa_key.Yourpublickeyhasbeensavedin/etc/ssh/ssh_host_rsa_key.pub.Thekeyfingerprintis:aa:aa:aa:aa:aa:aa:aa:aa:aa:aa:aa:aa:aa:aa:aa:[email protected]'srandomartimageis:+--[RSA2048]----+|aa||aa||aaaa||aaaa||aaaaaa||aaaa||aaaaaaa||aaaaaaa||aaa|+-----------------+Generatingpublic/privatedsakeypair.Youridentificationhasbeensavedin/etc/ssh/ssh_host_dsa_key.Yourpublickeyhasbeensavedin/etc/ssh/ssh_host_dsa_key.pub.Thekeyfingerprintis:bb:bb:bb:bb:bb:bb:bb:bb:bb:bb:bb:bb:bb:bb:bb:[email protected]'srandomartimageis:+--[DSA1024]----+|||||||bb||bb||bbb||bbbbb||bbbbbbb||bbbbbbb|+-----------------+ec2:ec2:#############################################################ec2:-----BEGINSSHHOSTKEYFINGERPRINTS-----ec2:2048aa:aa:aa:aa:aa:aa:aa:aa:aa:aa:aa:aa:aa:aa:aa:[email protected](RSA)ec2:1024bb:bb:bb:bb:bb:bb:bb:bb:bb:bb:bb:bb:bb:bb:bb:[email protected](DSA)ec2:-----ENDSSHHOSTKEYFINGERPRINTS-----ec2:#############################################################[OK]
Acima de cada imagem "randomart" está o tipo de assinatura, como RSA ou DSA. Encontre o tipo que você recebeu (RSA no seu caso) e verifique a impressão digital acima dele.
Se você deseja verificar se a mesma chave é a da instância (como prova de conceito, depois de ter SSH), você pode executar:
ssh-keygen -lf /etc/ssh/ssh_host_rsa_key.pub
2048 aa:aa:aa:aa:aa:aa:aa:aa:aa:aa:aa:aa:aa:aa:aa:aa [email protected] (RSA)
Abordagem alternativa:
Para evitar o problema, você pode usar suas próprias chaves - desde que você gerou a chave, você conhece a impressão digital. O problema, então, é tornar a sua nova chave na instância sem usar o SSH.
A maioria das instâncias usa o cloud-init e suporta dados do usuário. Isso se aplica a qualquer instância desse tipo. Como você precisa interromper uma instância para modificar os dados do usuário, essa abordagem exige que você: a inicie uma instância pela primeira vez (e esteja configurando-se para usar chaves conhecidas) ou b: possa parar a instância, modifique os dados do usuário e reinicie a instância.
- Gerar uma chave Por exemplo, usando o PuttyGen no Windows:
- Crieumscriptdedadosdousuário:
Sevocêestiveriniciandoumanovainstância,bastaespecificaraschavesquedesejausar,seestiverreiniciandoumainstânciaquejáestáemexecução,énecessárioqueocloud-initreconfigureoSSHparainserirasnovaschaves.Porpadrão,omódulodeconfiguraçãoSSHdocloud-initéexecutadoumavezporinstância,entãovocêprecisaconfigurá-loparaserexecutadosempre(cadainicialização)(Issopodenãoseridealemalgumascircunstâncias,maspodesermodificadodepoisquevocêsouberachave,senecessário)
Osdadosdousuárioteriamoseguinteformato:
#cloud-configcloud_config_modules:#onlyneededifrestartinganinstance,omitiflaunchinganewinstance...listallexistingmodules-[ssh,always]#thisischangedtoalways(defaultisonceperinstance)ssh_keys:rsa_private:|-----BEGINRSAPRIVATEKEY----------ENDRSAPRIVATEKEY-----ssh-rsa#public_key
Porexemplo:#cloud-configcloud_config_modules:-locale-[ssh,always]-set-passwords-mounts-yum-configure-yum-add-repo-package-update-upgrade-install-timezone-puppet-disable-ec2-metadata-runcmdssh_keys:#youcanspecifyrsa,dsa,andecdsakeysrsa_private:|-----BEGINRSAPRIVATEKEY-----MIIEoQIBAAKCAQEAopbE8beKaKajF/SFOtntO9xt5XVZW5rlQCW6PVY1jXCq5dbjnEQoBGBIp6jsqLcnwYQW/tU4zXi7T0kX6NlVywiMOtjnyoOkLCX2R5OjMap3hlyjAO/PCKW7pE4vAHd7HyYvGW/gPezGW0WeFshp7J7dTXZdSmDquZI15rEsz07QsKWy/SH/rjYVObAQJN78CuU7C41LRshEeTSBM0jBSnp3jL1Ocw66qe4sV6jbcQN6QzK377e+KzpUDmcxaB7plTWDSpjxVFWbY6PQcsz5d/h60wSKu90Ia9fNMHWs7cbyELhKVPBRs4JtWKndjtISCd5T34UnKmtTpq6g/ocrrwIBJQKCAQB7Ck/Zg/oKAZAtzcybPSI7I1oVbY+68cI+Yb1e2XSiYxmLVoK7cdkYEYMXGA0KDhA/auD4MqeGvDq4ildIbR5UdSvZgYzQmvjHdqyJMXSUSaaPMVjCcEmlrdobeW+tU3/Ei5lDrpvb1caKQoV5Bl3/LB0YBovJlXNb//FwTrogVhYFexcda+DxN5a2oNSCwMosdgCP4gz+hX9zTAl9k/VOkLaj2h7URfsuAmwwZ+m24Bpz1r7vEtec0PraoKkBpVxBeNDPwMdosTrpGS49V+YRRiM8yShuRPF9mAwo62kcD7K5bToppyb6CLdCi06CTcAmQ5Sb+UwHqC/rdZI0wmnNAoGBAPxj6ecjM0AwrPf2TPJOtdEUHvFnc6bB23C32Yr7IWjNhij0BGG/D8CvsmCXDwYDH7Ss4CN/mMzG43QhfyyAz0T0BjpFmZEYqYOJAB7cwpdx4zjHzoc7WKiIvXPml2hdd37iVRNq6raUgDLpKfVkpY8FKcJjzFuiCXDOU1+mNxPbAoGBAKTqD/+XoDGsf6hkV7vgPLIXc3/BZco0l9kNkemto9RVIsr3D40bfe4PuJg3fjwFYDTq9s79WFR5sG/eSpNJtSGTz6LN5TQoL5xLMCIysajc+JN64w4TYCDGSEk4Xgv0X0cCgJfFRCedv9qObGT9/KCI/9Y/5jlZsVphNsAk4Xm9AoGBAKO2bjUP6eRymbWY1/ceTGvxYC3iPS3lh2u1hjCi5T0PsPf4OjGQsEWiZd3JxI5HNykWMIW6jKCBAj19guxvOlY9a9LFXLEkwPtfyLoSp7wuMoWyCWx5hZ3AeuNlI/CrVG36mAyYYOUiDfeCfBTLqajgwSQlDu9UWSaTq7OqFeNdAoGAFkkkway0yHFBrvjNle3esEhbt1F8dUVgoMp7gHFpKogLnuMdxvXglcrF6w5rATEorTSCN6Wx/ZPnaRAzl1z8zS+mb/JPZ+nBPqJgc1L1adir+EEJ7SU2gPgzSCo2OPeCfzewgzZVUXYurtT55CJSkjwG5Znurc3ZskR9BTVqk+kCgYARZXWS0Wyy5piq7WX7w2Hc6bVEPMCU+yJcbJ8E+F8meoQ1kXIRqIB+cAsq/3z3JmU19yOGms557POXgEFseMMFai3i2wTQ4mGPOM3a7yEeeKl1Zg5eHVUdVd+nPDzs9D+9umc6mXrRiRwJPQWo8pIKXb7SqjIA73M7H+98CBtb5w==-----ENDRSAPRIVATEKEY-----ssh-rsaAAAAB3NzaC1yc2EAAAABJQAAAQEAopbE8beKaKajF/SFOtntO9xt5XVZW5rlQCW6PVY1jXCq5dbjnEQoBGBIp6jsqLcnwYQW/tU4zXi7T0kX6NlVywiMOtjnyoOkLCX2R5OjMap3hlyjAO/PCKW7pE4vAHd7HyYvGW/gPezGW0WeFshp7J7dTXZdSmDquZI15rEsz07QsKWy/SH/rjYVObAQJN78CuU7C41LRshEeTSBM0jBSnp3jL1Ocw66qe4sV6jbcQN6QzK377e+KzpUDmcxaB7plTWDSpjxVFWbY6PQcsz5d/h60wSKu90Ia9fNMHWs7cbyELhKVPBRs4JtWKndjtISCd5T34UnKmtTpq6g/ocrrw==rsa-key-20140716
- Paresuainstânciaemodifiqueosdadosdousuário:
- Inicie a instância e conecte-se a ela:
Observe que a impressão digital mostrada aqui corresponde àquela exibida quando a chave foi gerada.
Se você estiver parando a instância e tiver acesso a outra instância, também poderá montar o volume raiz e modificar as chaves diretamente, sem usar os dados do usuário (as chaves não serão sobrescritas, pois o cloud-init só executa a configuração SSH uma vez por instância por padrão). Uma abordagem alternativa, se você estiver planejando antecipadamente, é configurar o cloud-init (ou um script de inicialização) para registrar as chaves SSH em cada inicialização, o que aumenta a probabilidade de encontrá-las no log do console após uma reinicialização.