Embora os passos descritos funcionem, existe um problema. Você está gerando o par de chaves no computador de destino (remoto) e, em seguida, baixando o arquivo de chave particular para o sistema local. Existem aqui implicações de segurança que você não deve ignorar:
- Se o controle remoto já estiver comprometido, alguém pode ter acabado de pegar sua frase secreta.
- Se o sistema remoto for comprometido no futuro, o invasor terá acesso ao seu arquivo de chave privada (e ao luxo de usar um ataque de força bruta offline para tentar descriptografá-lo).
Como você está usando pares de chaves ssh para (tentar) resolver alguns dos problemas inerentes à autenticação de senha, normalmente você quer fazer as coisas dessa maneira:
-
Gere o par de chaves no seu sistema local. Idealmente, a chave privada (a) nunca será armazenada em um sistema de arquivos compartilhado (por exemplo, diretório inicial do NFS) e (b) nunca será armazenada em um computador que permita logins remotos.
-
Publique a chave pública longe. Eu mantenho minhas chaves públicas em um site para que eu possa pegá-las sempre que eu precisar delas. Coloque a chave pública nos arquivos
authorized_keys
apropriados nos sistemas aos quais você estará se conectando.
Se você for especialmente paranóico, poderá armazenar sua chave privada em um pen drive e usar a unidade apenas para carregar a chave em um ssh-agent
em execução. Neste ponto, você não precisa mais do arquivo de chave real.