Onde a impressão digital do servidor SSH é gerada / armazenada?


44

Eu instalei o openssh-server e criei uma chave com ssh-keygen. Em seguida, tentei testá-lo usando o encaminhamento de porta local ssh -L 8080:www.nytimes.com:80 127.0.0.1. No entanto, a impressão digital chave que este comando fornece não é a impressão digital chave que recebo quando o faço ssh-keygen -l. Mesmo que eu exclua meu diretório .ssh, ainda assim recebo a mesma impressão digital, que não é a que eu criei ssh-keygen. Existe outra chave no meu sistema? Onde esta chave está? Como posso selecionar essa chave para uso pelo openssh-server?

Respostas:


59

Quando você faz uma sessão SSH, dois pares de chaves diferentes (com uma impressão digital para cada par) são envolvidos. Uma é a chave do usuário armazenada ~/.ssh. A identidade da chave SSH do usuário às vezes é usada como credencial para efetuar login em outro computador (se você configurou o login baseado em chave).

O outro é a chave do servidor SSH. Essa é a chave para a qual você vê a impressão digital quando se conecta a um servidor diferente pela primeira vez. A identidade dessa chave é usada para garantir que você esteja efetuando login no servidor SSH que pretende. Isso é importante se você estiver usando senhas, porque não deseja tentar acessar acidentalmente uma máquina atacante: o invasor receberá sua senha quando você a digitar. para! (isso é conhecido como "ataque do homem do meio" ). As chaves que um servidor SSH usa para se identificar quando você faz login estão localizadas /etc/ssh/e geralmente denominadas algo como ssh_host_rsa_key.

Você pode realmente mudar para onde o servidor SSH procura a chave no arquivo com a configuração./etc/ssh/sshd_configHostKey /path/to/host/key

Por padrão, ssh-keygencriará uma chave para o usuário atual, que, por padrão, será armazenada ~/.ssh. O formato de uma chave de usuário e uma chave de servidor é o mesmo; a diferença é onde eles são colocados e se /etc/ssh/sshd_confighá uma HostKeydiretiva apontando para eles. Quando você instala o pacote openssh-server, ele gera automaticamente chaves para o servidor usar. É daí que as chaves com a impressão digital desconhecida vieram. Se você quiser ver a impressão digital da chave do servidor SSH (RSA *), poderá executar ssh-keygen -lf /etc/ssh/ssh_host_rsa_key.pub.

* Existem diferentes algoritmos de criptografia. Cada um usa uma chave diferente. Os comuns são DSA (fraco), RSA (padrão antigo) e ECDSA (novo padrão).


1
Os resultados do Google para "definir impressão digital ssh", mesmo que esses termos sejam tecnicamente incorretos, são surpreendentemente ruins. Que bom que eu encontrei isso entre eles.
Bart van Heukelom

4
Obrigado por isso. Uma observação: 'sudo' não é necessário, se você apontar ssh-keygen para a chave pública. Ou seja: ssh-keygen -lf /etc/ssh/ssh_host_rsa_key.pub. Além disso, para minha instalação, era a chave ECDSA, e não a chave RSA, que o daemon ssh estava usando; portanto, o que eu precisava executar era ssh-keygen -lf /etc/ssh/ssh_host_ecdsa_key.pub.
John Clements

Existe algum problema em obter as chaves públicas do meu disco rígido antigo e usá-las na minha nova instalação, substituindo-as no / etc / ssh? Uma chave é uma chave, certo?
Adam

@ Adam Não vejo problema em fazer isso. Isso deve ajudar a evitar problemas quando você vai para acessar remotamente e a chave mudou (o que acontece se você re-instalar uma nova chave é gerada.)
Azendale

3
Quando eu me conecto ssha um host a partir de 14.04 pela primeira vez, ele mostra a impressão digital MD5. Para que o ssh-keygen16.04 mostre a impressão digital MD5, você deve usar a -E md5opção
22417 jarno

15

As chaves do host SSH são armazenadas /etc/ssh/, as quais você geralmente não precisa escolher. Essas chaves foram geradas quando o pacote openssh-server foi instalado.

Você pode listar a impressão digital das chaves, ssh-keygen -l -f /etc/ssh/ssh_host_key.pubembora precise repeti-la para cada chave pública.

 


7

ssh-keygennão gera a impressão digital SSH no seu servidor. Isso é gerado pelo servidor SSH. ssh-keygencria um par de chaves pública / privada para o seu sistema que você pode usar posteriormente para acessar o servidor SSH sem precisar transmitir uma senha em texto sem formatação ao servidor.

A impressão digital do seu servidor obviamente não será exibida como a impressão digital do par de chaves pública / privada que você gerou, pois elas são separadas uma da outra.


3
Observe que você deve ser capaz de gerar chaves ssh para o seu servidor (ao contrário do que você diz), mas basta colocá-las no lugar certo para que sejam usadas para esse fim.
Azendale 23/03
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.