Почему я все еще могу подключиться к своему серверу, если ключи, которые я использую, явно недоступны?
С моего ПК, чтобы подключиться к серверу:
ssh -l myLogin -i .ssh/key-file <SERVER_IP>
Я пробовал это в двух конфигурациях:
.ssh/authorized_keys
на сервереОба раза я получаю следующее сообщение, но я все еще подключен к серверу:
Warning: Identity file .ssh/key-file not accessible: No such file or directory.
Примечание: я уже правильно использовал этот же компьютер для подключения к тому же серверу, используя другой правильный ключ, который я удалил локально.
Есть ли на моем сервере неправильная конфигурация, которая разрешает соединения без надлежащей аутентификации? Или на моем ПК может быть какой-то кеш, который запоминает, как получить доступ к серверу?
В подробном режиме (при добавлении -v
), SSH дает больше информации:
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,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,sk-ecdsa-sha2-nistp256@openssh.com>
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).
...
Как видим, Offering public key
упоминает ключ, который я только что удалил с моего локального ПК, но все еще находился в кэш-памяти агента ssh и все еще действовал для сервера. После выхода и повторного подключения к моей локальной машине все вернулось в норму. Спасибо @ michael-hampton
Ключ ssh, который вы сказали, что удалили из вашей локальной файловой системы, все еще используется, потому что ваш агент ssh кэшировал его и предоставляет его, когда вы пытаетесь войти в систему на удаленном хосте.
Вы можете просто выйти из своей локальной системы и снова войти в нее, и агент ssh также перезапустится и забудет ваш старый ключ.