Everytime we create a ssh key (and suppose we overwrite the id_rsa.pub file everytime), how does the remote server get notified about that?
Não há notificação automática. Além disso, se você sobrescrever seu par de chaves existente, e essa era a única coisa que lhe permitia acessar os sistemas remotos, você não teria mais acesso. Eu sugiro strongmente que você não sobrescreva as chaves. Em vez disso, faça várias chaves. Em seguida, use seu .ssh / config para definir uma chave para uma conexão específica ou adicione todas as suas chaves ativas a um agente ssh.
Depois de criar um novo par de chaves, você precisa publicar novamente a chave pública em todos os hosts nos quais você precisa ser autenticado.
Quando eu gero minhas chaves, tenho a tendência de nomeá-las e adicionar um comentário que inclua a hora em que são geradas. Então, algo assim.
ssh-keygen -C zoredache_20160217_id -f zoredache_20160217_id_rsa
If suppose I change my public key, can I change it back manually to any older keys that I generated.
Não se você substituir / substituir. Mais uma vez, mantenha seus antigos pares de chaves. Mantenha seus keypairs antigos.
What benefits does it provide since it makes a connection to the local machine
Há muito poucas razões para isso. Mas eu encontrei alguns aplicativos raros que não funcionam corretamente quando eu sudo -i -u anotheraccount
. Quando eu ssh anotheraccount@localhost
eu posso usar esses aplicativos. Um exemplo é desconectado das sessões do GNU Screen. A tela é um pouco exigente quanto à propriedade do terminal usado para reconectar. Usar o SSH para outra conta faz com que funcione.