ls
apenas imprime pontos de interrogação sem que existam pontos de interrogação naquele ponto no nome de um arquivo se o comutador -q
ou o comutador longo equivalente --hide-control-chars
estiver definido. O que não é. Isso significa que você tem um arquivo que literalmente é chamado de ??
.
steeldriver provavelmente está correta: você declarou ??
como o nome da chave quando ssh-keygen
foi processada.
Isto é bastante evidente porque ssh-keygen
foi executado logo antes de ls
e quando executado com sucesso, cria um arquivo contendo a chave privada (possivelmente criptografada) (cujo nome você pode escolher) e um arquivo contendo a chave pública que começa com o nome do arquivo que contém a chave privada, mas tem .pub
no final. Existe um arquivo chamado ??
e um chamado ??.pub
, então isso faz todo o sentido.
Como com todas as outras coisas com um valor padrão que você foi solicitado a declarar, você poderia ter pressionado Enter para aceitar o valor padrão para os locais dos arquivos de chaves.
Para alterar o nome e o local do arquivo para o da chave padrão, execute estes comandos:
mkdir -p ~/.ssh
mv ~/?? ~/.ssh/id_rsa
mv ~/??.pub ~/.ssh/id_rsa.pub
O primeiro cria a pasta .ssh
em seu diretório pessoal, se já não existir, o segundo move sua chave privada para ele, e o terceiro move sua chave pública para ele.