A menos que você diga especificamente para fazer o contrário, o SSH oferece ~/.ssh/id_<type>
(por exemplo, ~/.ssh/id_rsa
) para autenticação.
Você criou uma chave em um local não padrão (dentro de ~ / .ssh, mas com um nome de arquivo não padrão).
Como a autenticação de chave pública em geral funciona para você, a primeira coisa que eu verificaria é que o SSH oferece a chave correta para autenticação. Você pode verificar isso executando ssh
com a opção -v
para ativar um nível de saída detalhada (depuração). Entre as mensagens, você deve ver algo como:
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /home/you/.ssh/something
Veja quais chaves públicas ele oferece. (Você pode ter várias linhas Offering ... public key
, para diferentes arquivos-chave.) Se ele não oferecer sua chave recém-criada, essa chave será nunca ser um candidato para autenticação.
Se a sua chave recém-criada não for oferecida, tente dizer explicitamente ao SSH para oferecê-la, adicionando a opção -i
. Por exemplo, ssh -i ~/.ssh/my-ssh-key -v username@hostname
. Note que o SSH irá adicionar .pub
ao nome onde precisa acessar a chave pública, então você dá o nome do arquivo de chave privada.
Se isso funcionar, você pode editar seu ~/.ssh/config
para informar ao SSH que ofereça essa chave a esse host. Por exemplo, você poderia adicionar um bloco como o seguinte. Certifique-se de adicioná-lo acima de qualquer bloco Host *
que você possa ter.
Host hostname
User username
IdentityFile ~/.ssh/my-ssh-key
Então você deve conseguir se conectar usando apenas ssh hostname
.
Veja man 1 ssh
e man 5 ssh_config
para mais detalhes.