What do you think? Is it wiser to generate the keys (SSH, GnuPG, or other) locally and then transfer the private keys over SSH, or am I just being paranoid about the whole thing?
Isso não faz diferença, pelo menos se os administradores do sistema não interferirem com a pilha de software (mas por que eles deveriam se apossar das chaves privadas?).
Desde que a chave privada esteja na máquina remota, não há diferença como chegou lá. Os administradores do sistema podem ter acesso a ele. Uma frase secreta também apenas adicionará um esforço adicional para obter as chaves, pois elas também podem obter acesso à sua entrada.
Also, if I'm right to be at least slightly paranoid, what's your thought about where to store private keys? Should they all be in one physical place? Should I make heavy use of gpg-agent and ssh-agent always?
Isso depende de seus requisitos, nível de paranimidade, confiança nos administradores do sistema e, finalmente, uso da chave.
Se você precisar de uma chave SSH privada na máquina para acessar alguns serviços (digamos, GitHub), basta gerar uma nova somente usada nesta máquina, e aceita apenas para autenticação nos serviços. / máquinas necessárias.
Em relação ao OpenPGP / GnuPG, as coisas dependem dos seus requisitos. Parece que você quer assinar um software e tenho a sensação de que isso acontece para a sua empresa. Se a chave está diretamente ligada à empresa e criada apenas para essa finalidade, não vejo objeções em não tê-la em suas máquinas.
Se você precisar usar sua própria chave por qualquer motivo, crie uma subchave que você pode, pelo menos, limitar a assinar e revogar a qualquer momento sem aborrecimentos. Usar subchaves é uma boa prática, de qualquer maneira! Muitos usuários avançados do OpenPGP, na verdade, armazenam suas chaves primárias privadas offline e, na verdade, só o usam para gerenciamento de chaves.
Encaminhar o soquete de gpg-agent
parece ser bem possível , e, é claro, reduzirá o acesso do administrador do sistema à chave (eles não têm mais acesso à chave completa, mas só podem usá-la, pelo menos começando com o GnuPG 2.1, que removeu todas as operações de chave privada de all o agente).