Em geral, um par de chaves privada / pública deve ser gerado no cliente que você deseja usar e CADA cliente deve ter seu próprio par de chaves privada / pública. A chave privada é somente para o cliente e a chave pública pode ser compartilhada com os servidores que você deseja acessar.
Normalmente, o servidor deve armazenar apenas as chaves públicas e cada chave pública diz que "o cliente com a chave privada correspondente pode acessar esta máquina".
Você não deve ter mais de um cliente com a mesma chave privada.
Se qualquer um desses clientes for comprometido, TODOS os seus clientes estarão comprometidos e você terá que remover a chave privada e gerar novamente uma nova chave em seus sistemas. É por isso que um par de chaves privada / pública por cliente é bom, porque se algum deles for comprometido, o servidor precisará revogar apenas uma chave pública do arquivo authorized_keys
para remover o acesso usando essa chave privada. Parece meio estranho, mas na prática você não quer negar todas as conexões se apenas um cliente estiver comprometido. (Para responder à sua sub-questão, o comportamento está correto, mas não é o que você deve permitir que ocorra. )
Finalmente, como você é o proprietário do servidor, é "ok" gerar o par de chaves no servidor e depois transferi-lo, mas em geral quando uma pessoa nem sempre é proprietária do servidor, ele gera o par de chaves e envia o público chave para os servidores que eles querem acessar e os administradores de sistemas lidam com vários processos de verificação para garantir que eles estejam adicionando um cliente que eles querem permitir.