O problema era uma sessão mestre de controle SSH que estava sendo executada em segundo plano. ssh-copy-id pendurado com mestre de controle é um bug conhecido.
Comecei com uma caixa no Google Compute Engine (serviço de nuvem do Google) com uma conta chamada xyz e um endereço IP efêmero.
Vamos fingir que o endereço IP efêmero era 2.3.4.5.
Antes de iniciar o processo abaixo, consegui fazer o login em [email protected] com uma senha.
Em seguida, anexei um endereço IP estático. Vamos fingir que o endereço IP estático era 1.2.3.4.
eu digitei
my@localbox:~$ ssh-copy-id [email protected]
O comando parece travar, então eu matei o terminal.
Eu então fiz um simples
my@localbox:~$ ssh [email protected]
O que foi bem sucedido sem solicitar uma senha.
Eu assumi que minha chave havia sido convertida em minhas authorized_keys, então fiz
xyz@cloudbox:~$ ls -al
Para minha surpresa, o .ssh continha apenas um arquivo known_hosts, não um arquivo authorized_keys.
Além disso, o comando
my@localbox:~$ ssh-copy-id [email protected]
ainda trava quando eu tento, então não foi apenas um acaso aleatório.
Como eu consigo acessar esta conta sem uma senha se não houver um arquivo .ssh / authorized_keys? Está relacionado com a causa da suspensão do ssh-copy-id?