E.g. if I have multiple machines, I'd need to duplicate private keys, which I think is undesirable.
Não, na verdade você não. Se você tiver várias máquinas, basta criar uma chave privada separada em cada uma delas. Para cada chave privada, basta fazer o upload da chave pública correspondente para o GitHub usando o mesmo processo.
Also, if my HDD go kaput, I'll lose my private key, which (I guess) is undesirable as well.
Não realmente; Se você perder sua chave privada, basta gerar uma nova e fazer o upload da chave pública correspondente.
Por que vale a pena, você está certo de que a duplicação de uma chave privada é altamente indesejável. Idealmente, uma chave privada deve ser gerada em um arquivo ( ~/.ssh/id_rsa
por exemplo) e deve nunca deixar esse arquivo - ou seja, nunca deve ser copiado, movido e especialmente não transferido por uma rede . (por exemplo, excluo-os de backups) Devido à natureza dos protocolos de autenticação assimétrica, você só precisa se preocupar em manter sua chave privada fora do alcance de outras pessoas. Se você for um pouco exagerado e perder a noção de si mesmo, geralmente não é grande coisa. (Isso não deve ser confundido com chaves privadas de criptografia assimétricas, por exemplo, chaves GPG, as quais você provavelmente deseja manter.)