Criando chaves no formato ed25519 de forma semi interativa, com os devidos comentários e separados por serviço:

for i in id_ed25519 github gitlab; do ssh-keygen -t ed25519 -o -a 100 -f $i -C "$(whoami)@$(hostname) - $i"; done;

Explicação:

  • for i in x y z - Define o nome das nossas chaves, para cada item aqui o for vai repetir os comandos de criação definidos até done.
  • ssh-keygen - Utilitário de geração de chaves do OpenSSH.
  • -t ed25519 - Define o tipo da chave com ed25519.
  • -o -a 100 - Define o número de rounds que a chave irá ter.
  • -f <span class="katex-inline">i - Gera a chave com o nome definido no for.
  • -C "</span>(whoami)@$(hostname) - $i" - Gera a chave com um comentário, vinculando seu usuário, maquina atual e nome da chave.

NOTA: O ssh-keygen irá perguntar se desejar definir uma senha para as chaves em questão.

Alguns serviços mais antigos podem não aceitar uma chave ed25519, logo rsa seria a alternativa mais viável, para isso mude o one-liner para algo similar a isso:

ssh-keygen -t rsa -b 4096 -o -a 100 -f $i -C "$(whoami)@$(hostname) - $i"

Além disso, garanta uma senha nas suas chaves, isso permite que a carregue com segurança mesmo em dispositivos não criptografados.

NOTA: Fique atento caso receba o erro de permission denied durante uma tentativa de acesso SSH, pode ter a ver com a versão do seu cliente SSH versus o do servidor, ative o modo verbose com -v, é provável que o erro seja do tipo no mutual signature algorithm (exemplo https://www.ibm.com/support/pages/ibm-aix-sendpubkeytest-no-mutual-signature-algorithm-0)

Referência