Привет, я никогда не задавал здесь вопросов, но я пытаюсь получить доступ к экземпляру AWS без ввода пароля с помощью следующего кода и у меня возникли некоторые проблемы.
$ ssh -i ~/.ssh/id_rsa_aws.pub ubuntu@ipaddresshere
Однако он запрашивает у меня пароль, хотя ключ я сгенерировал, используя следующее, и оставил поле пароля пустым при запросе.
$ ssh-keygen -t rsa -b 1024
При доступе к серверу и вводе пустого поля для пароля я получаю сообщение об отказе в доступе. Если я ввожу пароль, мне предлагается повторно ввести значение. Поэтому я считаю, что сервер принимает пустой пароль, но отклоняет ключ.
Я сохранил содержимое id_rsa_aws.pub
в authorizedkeys2
и считаю, что все разрешения установлены правильно.
Чтобы провести еще немного тестирования, я использовал другой ключ, который я сгенерировал ранее для другого экземпляра, просто вызвал id_rsa.pub
его и скопировал, authorizedkeys2
и теперь с этим все в порядке.
Разрешения для ключей одинаковы.
Почему сгенерированный мной ключ не работает, а другой работает?
Я примерно следовал ссылке ниже, единственное отличие — использование другого файла идентификации, а не id_rsa.pub
решение1
Ладно, у вас тут есть пара проблем. Я их одну за другой рассмотрю.
$ ssh -i ~/.ssh/id_rsa_aws.pub ubuntu@ipaddresshere
Первая проблема здесь. Ваш файл идентификации не является файлом открытого ключа. Ваш файл идентификации является вашимчастныйkey file. Таким образом, команда, которую вы запускаете, должна быть:
$ ssh -i ~/.ssh/id_rsa_aws ubuntu@ipaddresshere
Я сохранил содержимое id_rsa_aws.pub в authorizedkeys2 и считаю, что все разрешения установлены правильно.
Вторая проблема здесь. authorizedkeys2
это не то место, где ваш sshd ищет ваш файл открытого ключа. Я думаю, вы, возможно, имели в виду authorized_keys2
(обратите внимание на подчеркивание), но даже это не будет правильным местом (хотя это может сработать). Файл authorized_keys2
был устарел довольно давно, в пользу одного, унифицированного ~/.ssh/authorized_keys
файла, который содержит как ключи RSA, так и DSA.