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.