“Adicionou permanentemente a chave do host RSA”, o que significa?

4

Sou muito novo no Unix e as coisas que o rodeiam, particularmente para esta questão é o SSH e a autenticação.

Eu sei que posso criar identidades (criar um par de chave pública / privada), colocá-lo em ssh-agent e copiar a chave pública para o host remoto para que eu possa SSH para o host remoto sem digitar a senha. Corrija-me se estiver errado, mas para listar todas as identidades registradas no meu sistema local, posso executar apenas ssh-add -l .

Quando tentei me conectar via SSH (especificamente, eu estava tentando se conectar ao bitbucket via SSH para que eu não tivesse que digitar minha senha repetidamente), recebi este aviso:

Warning: Permanently added the RSA host key for IP address 'xxx.xxx.xxx.xxx' to the list of known hosts.

Depois que eu cedi e continuei com a chamada 'adicionar permanentemente a chave do host RSA', executei ssh-add -l e observei que meu par de chave pública / privada criado anteriormente não estava registrado, mas uma nova identidade parece para ser criado. Perplexo, verifiquei o conteúdo de ~/.ssh/ , mas não vi nenhum outro arquivo de chave pública / privada diferente do que eu criei anteriormente.

Eu tentei remover a identidade executando ssh-add -D , mas sem sucesso: ela ainda aparece quando eu executo ssh-add -l .

Minhas perguntas são:

  • O que está acontecendo? Acabei de criar uma nova identidade quando meu Unix solicitou minha senha local?
  • Onde posso encontrar as chaves pública e privada para a identidade listada por ssh-add -l ? Por que não posso excluir a identidade por ssh-add -D ?
  • Por que eu me conectei com sucesso ao Bitbucket, embora não tenha adicionado a chave pública no gerenciador de contas, além da que criei anteriormente por ssh-keygen ?
  • Notei que isso pode ter algo a ver com ~/.ssh/known_hosts file, mas não tenho ideia de qual finalidade o arquivo atende e como ele se relaciona com todo esse negócio de SSH?

Eu procurei na internet algumas explicações sobre como o SSH funciona, e como o Unix gerencia chaves / identidades públicas / privadas, e como o arquivo known_hosts entra em ação, mas não consigo encontrar nenhum. Qualquer explicação ou referências a artigos externos seria muito apreciada!

Um pouco mais de contexto: Anteriormente, criei um novo par de chave pública / privada e adicionei-o ao agente ssh (e copiei a chave pública para o Bitbucket, conforme a instrução do Bitbucket). Então desliguei o computador e abri novamente no dia seguinte. Quando tentei fazer git fetch , fui solicitado a inserir minha senha de usuário local e o aviso mencionado acima é exibido. E então vai minhas perguntas e confusão.

    
por lookingaround 18.02.2015 / 05:11

1 resposta

6

Palavra chave chave do host . Na primeira vez que você se conecta a um host, é apresentada uma impressão digital da chave pública desse host. O servidor em si tem um par de chaves como os usuários.

A idéia é que você possa verificar a impressão digital com o que você sabe que a impressão digital do servidor deve ser, para garantir que você não está sendo MITMed.

Depois de aceitar a chave do host, ela é salva em seu arquivo known_hosts, que seu cliente usa para verificar todas as conexões subsequentes.

Se a chave do host for alterada inesperadamente, seu cliente notará e exibirá uma mensagem de erro desagradável, sugerindo que algo pode estar errado e que você deve verificar as coisas.

    
por 18.02.2015 / 05:27

Tags