Por que ainda posso me conectar ao meu servidor quando as chaves que estou usando claramente não estão acessíveis?
Do meu PC, para se conectar ao servidor:
ssh -l myLogin -i .ssh/key-file <SERVER_IP>
Eu tentei isso nessas 2 configurações:
- key-file não existe no meu PC e key-file.pub não existe no servidor
- key-file não existe no meu PC, mas o conteúdo key-file.pub está no
.ssh/authorized_keys
servidor
Nas duas vezes, recebo a seguinte mensagem, mas ainda estou conectado ao servidor:
Warning: Identity file .ssh/key-file not accessible: No such file or directory.
Nota: Eu já usei corretamente este mesmo PC para conectar ao mesmo servidor, usando outra chave adequada que excluí localmente
Existe uma configuração ruim no meu servidor que permite conexões sem autenticação adequada? Ou pode haver algum tipo de cache no meu PC que lembre como acessar o servidor?
SSH em verbose
No modo detalhado (ao adicionar -v
), o SSH fornece mais informações:
Warning: Identity file .ssh/key-file not accessible: No such file or directory.
...
debug1: Will attempt key: localLogin@localLogin-laptop-ubuntu RSA SHA256:0DH/97OKekTIjdeuc2jO2Ixig9VVTpB7morVj2/GVJw agent
debug1: Will attempt key: localLogin@localLogin-laptop-ubuntu RSA SHA256:6l0joGtcoJv2yvia82zAtXK8PqBLQkesOOwDaCutc20 agent
debug1: Will attempt key: /home/localLogin/.ssh/id_rsa
debug1: Will attempt key: /home/localLogin/.ssh/id_dsa
debug1: Will attempt key: /home/localLogin/.ssh/id_ecdsa
debug1: Will attempt key: /home/localLogin/.ssh/id_ecdsa_sk
debug1: Will attempt key: /home/localLogin/.ssh/id_ed25519
debug1: Will attempt key: /home/localLogin/.ssh/id_ed25519_sk
debug1: Will attempt key: /home/localLogin/.ssh/id_xmss
debug1: SSH2_MSG_EXT_INFO received
debug1: kex_input_ext_info: server-sig-algs=<ssh-ed25519,[email protected],ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,[email protected]>
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Offering public key: localLogin@localLogin-laptop-ubuntu RSA SHA256:0DH/97OKekTIjdeuc2jO2Ixig9VVTpB7morVj2/GVJw agent
debug1: Server accepts key: localLogin@localLogin-laptop-ubuntu RSA SHA256:0DH/97OKekTIjdeuc2jO2Ixig9VVTpB7morVj2/GVJw agent
debug1: Authentication succeeded (publickey).
Authenticated to <SERVER_IP> ([<SERVER_IP>]:22).
...
Como podemos ver, o Offering public key
menciona uma chave que acabei de excluir do meu PC local, mas ainda estava no cache do agente ssh e ainda era válida para o servidor. Depois de sair e entrar novamente na minha máquina local, tudo voltou ao normal. Obrigado @michael-hampton
A chave ssh que você diz ter removido de seu sistema de arquivos local ainda está sendo usada porque seu agente ssh a armazenou em cache e a está fornecendo quando você tenta efetuar login no host remoto.
Você pode simplesmente sair do seu sistema local e fazer login novamente, e o agente ssh também reiniciará e esquecerá sua chave antiga.