Ошибка «Permission denied (publickey)»

Описание проблемы

Возникает при подключении к виртуальной машине по SSH из-за несоответствия публичного и приватного ключей.

Решение

По умолчанию при использовании команды ssh <login>@<public_IP> проверяется наличие приватного ключа со стандартным именем в директории /home/<username>/.ssh или C:\Users\<username>\.ssh\. Примеры стандартных имен: id_rsa, id_ed25519, id_dsa, id_ecdsa.

Если во время генерации ключевой пары вы указали собственное имя или расположение ключа, он не будет найден при подключении.

Чтобы устранить ошибку, при подключении укажите путь к нужному приватному ключу с помощью флага -i:

ssh -i <path_to_private_key>/<keyname> <login>@<public_IP>

Где:

  • <path_to_private_key> — расположение файла с приватным ключом.

  • <keyname> — название файла с приватным ключом.

  • <login> — имя пользователя виртуальной машины.

  • <public_IP> — публичный IP-адрес виртуальной машины.

Примечание

Рекомендуется давать уникальные имена всем SSH-ключам. При использовании имени по умолчанию можно случайно перезаписать ключ и потерять доступ к виртуальной машине.

Evolution