Posso encontrar a chave privada ssh local da impressão digital remota? [duplicado]

2

Possivelmente eu estou perdendo algo óbvio, mas depois de ficar farto de 5 principais limitações do ssh-agent eu começo a procurar maneiras de melhorar o gerenciamento de chaves ssh.

Se eu criar um novo par de chaves ssh usando ssh-keygen -t rsa, poderei usar ssh-keygen -lf para obter impressões digitais tanto para chaves privadas quanto para públicas e ambos informarão a mesma impressão digital.

Em seguida, minha expectativa ingênua é fazer algo como um ssh-keyscan para obter impressões digitais de chave pública remota nesse host e combinar essa impressão digital com uma das minhas chaves privadas e iniciar a conexão ssh usando essa chave privada.

Obviamente, as impressões digitais que eu recebo usando ssh-keyscan nem se parecem com as impressões digitais de chaves locais.

Existe alguma solução para resolver este dilema?

    
por Charles 16.03.2017 / 22:00

2 respostas

4

O comando ssh-keyscan é para verificar as chaves do host ( /etc/ssh/ssh_host_*.pub ), não as chaves presentes usadas para autenticação / autorização de usuários.

Você precisaria se conectar ao host remoto e examinar os vários arquivos authorized_keys. A parte complicada é que um arquivo authorized_keys pode ter muitas chaves nele, então você precisa fazer alguma manipulação para extrair as chaves individuais e imprimi-las.

Há outro pergunta / resposta no serverfault com alguns bons métodos .

    
por 16.03.2017 / 22:40
3

Acho que evito o seu dilema simplesmente definindo a priori qual par de chaves usar para qual host no meu ~/.ssh/config

Host www
 HostName www.example.com
 IdentityFile ~/.ssh/key1
Host dev
 HostName dev.example.org
 IdentityFile ~/.ssh/key2
    
por 17.03.2017 / 00:35