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

34

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

    
por bsamek 07.11.2011 / 02:42

3 respostas

51

Quando você faz uma sessão SSH, dois pares de chaves diferentes (com uma impressão digital para cada par) estão envolvidos. Uma é a chave do usuário que é armazenada em ~/.ssh . Às vezes, a identidade da chave SSH do usuário é usada como credencial para fazer login em outro computador (se você tiver configurado 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 desejado. Isso é importante se você estiver usando senhas porque não deseja tentar acidentalmente fazer login em uma máquina de invasores: o invasor obteria sua senha quando você digitasse. Então, o invasor poderia fazer login na máquina que você pensou estar logando. para! (isso é conhecido como "homem no meio ataque" ) As chaves a O servidor SSH usa para se identificar quando você faz login nele, está localizado em /etc/ssh/ e geralmente tem o nome de algo como ssh_host_rsa_key .

Você pode alterar onde o servidor SSH procura a chave no arquivo /etc/ssh/sshd_config com a configuração HostKey /path/to/host/key .

Por padrão, ssh-keygen criará uma chave para o usuário atual, que, por padrão, será armazenada em ~/.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_config tem uma diretiva HostKey apontando para eles. Quando você instala o pacote openssh-server, ele gera automaticamente chaves para o servidor usar. É daí que vêm as chaves com a impressão digital desconhecida. Se você quiser ver a impressão digital da chave do servidor SSH (RSA *), pode executar ssh-keygen -lf /etc/ssh/ssh_host_rsa_key.pub .

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

    
por Azendale 07.11.2011 / 04:42
14

As chaves do host SSH são armazenadas em /etc/ssh/ , o que geralmente não é necessário escolher. Essas chaves foram geradas quando o pacote openssh-server foi instalado.

Você pode listar a impressão digital das chaves por ssh-keygen -l -f /etc/ssh/ssh_host_key.pub , embora seja necessário repetir isso para cada chave pública.

    
por ajmitch 07.11.2011 / 03:17
7

ssh-keygen não gera a impressão digital SSH no seu servidor. Isso é gerado pelo servidor SSH. ssh-keygen cria um par de chaves pública / privada para o seu sistema que você pode usar posteriormente para acessar seu servidor SSH sem ter que transmitir uma senha de texto simples para o 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 umas das outras.

    
por Thomas Ward 07.11.2011 / 02:48