Preciso fazer a auditoria de chave SSH para o GitHub, mas não sei como encontrar minha impressão digital de chave RSA. Originalmente, segui um guia para gerar uma chave SSH no Linux.
Qual é o comando que preciso digitar para encontrar minha impressão digital da chave RSA atual?
function fingerprint() { ssh-keygen -lf $1 -E md5 }
Então (depois de você fonte do bashrc) você pode obter uma impressão digital comfingerprint ~/.ssh/key_file
;
no corpo, então use-ofunction fingerprint() { ssh-keygen -lf $1 -E md5; }
.Respostas:
Execute o seguinte comando para recuperar a impressão digital SHA256 da sua chave SSH (
-l
significa "lista" em vez de criar uma nova chave,-f
significa "nome do arquivo"):Por exemplo, na minha máquina, o comando que executei foi (usando a chave pública RSA):
Para obter o formato de impressão digital do GitHub (MD5) com versões mais recentes do ssh-keygen, execute:
Informações sobre bônus:
ssh-keygen -lf
também funciona emknown_hosts
eauthorized_keys
arquivos.Para encontrar a maioria das chaves públicas nos sistemas Linux / Unix / OS X, execute
(Se você quiser ver dentro das propriedades de outros usuários, precisará ser root ou sudo.)
O
ssh-add -l
é muito semelhante, mas lista as impressões digitais das chaves adicionadas ao seu agente. (Os usuários do OS X observam que o SSH mágico sem senha via Keychain não é o mesmo que usar o ssh-agent.)fonte
.ssh/id_rsa
deve ser a mesma que a de.ssh/id_rsa.pub
. Portanto, você pode usar qualquer um deles (e, se você gosta de mim e adora o preenchimento de guias, o trabalho leva menos 2 pressionamentos de tecla. Eficiência!).ssh-keygen -E md5 -lf ~/.ssh/id_rsa.pub
se você não quer que o padrão sha256 saídaOs comandos SSH mais recentes listam as impressões digitais como uma chave SHA256 .
Por exemplo:
Se você precisar compará-lo com uma impressão digital antiga, também precisará especificar a utilização da função de hash de impressão digital MD5 .
Também disponível:
-E sha1
Atualizar ... SIM ... sim ... eu sei ... as chaves DSA para SSH não devem mais ser usadas, a chave RSA mais antiga ou as chaves eclípticas mais recentes devem ser usadas.
Para aqueles 'administradores' que continuam editando o comando que usei acima. PARE DE MUDAR! Você faz o comando e a saída resultante incompatíveis!
fonte
ssh
para mostrar a impressão digital MD5 antiga do servidor usandossh -o FingerprintHash=md5 example.org
, conforme mencionado nesta resposta . (Eu só estava procurando por isso, e esta resposta me levou a que um, então eu acho que os outros possam ter uma experiência similar.)Para ver sua chave no Ubuntu, basta digitar o seguinte comando no seu terminal:
ssh-add -l
Você obterá uma saída como esta:
2568 0j:20:4b:88:a7:9t:wd:19:f0:d4:4y:9g:27:cf:97:23
yourName @ ubuntu (RSA)Se, no entanto, você receber um erro como;
Could not open a connection to your authentication agent.
Então isso significa que o ssh-agent não está sendo executado. Você pode iniciar / executá-lo com:
ssh-agent bash
(graças a @Richard nos comentários) e depois executar novamentessh-add -l
fonte
ssh-agent bash
e prosseguir com a vida. Na vida como sempre;ssh-agent
não é garantido como uma implementação consistente em todos os sistemas.Um par de chaves (as chaves privada e pública) terá a mesma impressão digital; portanto, caso não consiga lembrar qual chave privada pertence a qual chave pública, encontre a correspondência comparando as impressões digitais.
A resposta mais votada por Marvin Vinto fornece a impressão digital de um arquivo de chave SSH público . A impressão digital da chave SSH privada correspondente também pode ser consultada, mas requer uma série mais longa de etapas, como mostrado abaixo.
Carregue o agente SSH, se você não tiver feito isso. A maneira mais fácil é invocar
ou
(ou outro shell que você usa).
Carregue a chave privada que você deseja testar:
Você será solicitado a digitar a senha se a chave estiver protegida por senha.
Agora, como outros disseram, digite
fd:bc:...
é a impressão digital que você procura. Se houver várias chaves, várias linhas serão impressas e a última linha conterá a impressão digital da última chave carregada.Se você deseja parar o agente (ou seja, se você invocou a etapa 1 acima), basta digitar `exit 'no shell e voltará ao shell antes do carregamento do agente ssh.
Não adiciono novas informações, mas espero que esta resposta seja clara para usuários de todos os níveis.
fonte
ssh-add -l
essh-keygen -l
retorna a mesma impressão digital para um determinado par de chaves. Além disso, deve ser uma letra minúscula-l
, não maiúscula.ssh-add -l
essh-keygen -l
devolvo a mesma impressão digital para um determinado par de chaves. Mas não entendo o que havia de errado com minhas declarações originais no primeiro parágrafo. Eu adicionei uma frase para esclarecer.ssh-agent
. SupondoPRIVKEY
que foi definido como o arquivo de chave privada ePUBKEY
como o arquivo de chave pública (inicialmente inexistente), faça:ssh-keygen -y -f "${PRIVKEY}" > "${PUBKEY}"
para regenerar a chave pública SSH,ssh-keygen -E md5 -l -v -f "${PUBKEY}"
se você deseja o hash MD5 ou apenasssh-keygen -l -v -f "${PUBKEY}"
se deseja o hash SHA-256 (SHA-256 sendo o padrão agora).A maneira mais rápida se suas chaves estiverem em um agente SSH:
Cada chave no agente será impressa como:
fonte
Reproduzindo conteúdo dos fóruns da AWS aqui, porque achei útil para meu caso de uso - eu queria verificar quais das minhas chaves combinavam com as que havia importado para a AWS
openssl pkey -in ~/.ssh/ec2/primary.pem -pubout -outform DER | openssl md5 -c
Onde: -
primary.pem
é a chave privada para verificarfonte
também funcionará no Mac OS X v10.8 (Mountain Lion) - v10.10 (Yosemite).
Ele também suporta a opção
-E
de especificar o formato da impressão digital; caso seja necessário o MD5 (geralmente usado, por exemplo, pelo GitHub), basta adicionar-E md5
ao comando.fonte
man ssh-add
da opção-l
está "Lista as impressões digitais de todas as identidades atualmente representadas pelo agente"No Windows, se você estiver executando o PuTTY / Pageant, a impressão digital é listada quando você carrega sua chave PuTTY (.ppk) no Pageant. É bastante útil caso você esqueça qual deles está usando.
fonte
Esta é a função shell que eu uso para obter minha impressão digital com chave SSH para criar gotículas DigitalOcean :
Coloque-o em sua
~/.bashrc
fonte, e então você poderá obter as impressões digitais da seguinte maneira:fonte
Se o seu agente SSH estiver em execução, é
para listar impressões digitais RSA de todas as identidades ou
-L
para listar chaves públicas.Se o seu agente não estiver em execução, tente:
E para suas chaves públicas:
Se você receber a mensagem: ' O agente não tem identidades. ', então você deve gerar sua chave RSA
ssh-keygen
primeiro.fonte
/etc/ssh/ssh_host_ed25519_key.pub
. A segunda parte da pergunta permanece: existe alguma desvantagem em usar essa chave gerada automaticamente?Às vezes, você pode ter um monte de chaves em seu
~/.ssh
diretório e não sabe qual corresponde à impressão digital mostrada pelo GitHub / Gitlab / etc.Veja como mostrar os nomes de arquivos das chaves e as impressões digitais MD5 de todas as chaves do seu
~/.ssh
diretório:(Para saber o
find
que os parâmetros significam, consulte esta resposta sobre o comando .Observe que os arquivos públicos / privados que pertencem a uma chave têm a mesma impressão digital, portanto, você verá duplicados.
fonte
O Google Compute Engine mostra a impressão digital da chave do host SSH na saída serial de uma instância do Linux. A API pode obter esses dados do GCE e não há necessidade de efetuar login na instância.
Não encontrei em nenhum outro lugar, exceto na saída serial. Eu acho que a impressão digital deve estar em algum lugar mais amigável para programadores.
No entanto, parece que isso depende do tipo de uma instância. Estou usando instâncias do Debian 7 (Wheezy) f1-micro.
fonte
Para verificar um servidor SSH remoto antes da primeira conexão, consulte www.server-stats.net/ssh/ para ver todas as chaves SHH do servidor e também quando a chave é conhecida.
Isso não é como um certificado SSL, mas é definitivamente um procedimento obrigatório antes de conectar-se a qualquer servidor SSH pela primeira vez.
fonte
No Fedora eu faço o
locate ~/.ssh
que me diz que as chaves estão emfonte
~/.ssh/id*.pub
é) e deseja obter suas impressões digitais.