ssh-add
é a parte cliente de ssh-agent
, não tem nada a ver com a concessão de acesso a hosts (o que é feito adicionando a chave pública ( .pub
) a ~/.ssh/authorized_hosts
no servidor lado). ssh-agent
é um programa que você usa no lado do cliente, o lado do servidor só precisa de sshd
.
Invocando ssh-add -d
, você limpou uma chave em cache de ssh-agent
, de modo que você tenha que digitar novamente sua senha do arquivo de chaves SSH na próxima vez que você fizer um ssh em um sistema. Você não ficará bloqueado limpando este cache . Simplesmente execute ssh-add
(ou ssh-add ~/.ssh/id_rsa
para um arquivo de chaves específico) para lembrar novamente a senha do arquivo de chaves para esta sessão.
A opção -i
de ssh
é necessária apenas se sua chave privada estiver localizada em um local fora do padrão. ssh -i ~/.ssh/id_rsa user@host
é quase equivalente a ssh user@host
, pois ~/.ssh/id_rsa
é um dos locais padrão em que o SSH procura um arquivo-chave.
O motivo pelo qual ssh-add ~/.ssh/authorized_keys
solicita uma senha é porque ela não reconheceu uma chave desprotegida e, portanto, assumiu uma chave protegida por senha. Na verdade, o arquivo tem um formato inválido, portanto, nenhuma senha funcionará aqui.
Veja também a página de manual ssh-add(1)
.