Разрешение author_keys запрещено, только если я создаю файл при монтировании диска из другой ОС

Окружение:

VM A: машина, к которой я хочу получить доступ без пароля

VM B: я хочу получить доступ к VM A без пароля с машины

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

Поскольку я хочу получить доступ к виртуальной машине A из виртуальной машины B без пароля, я хочу сначала внедрить открытый ключ виртуальной машины B в виртуальную машину A, но мне все еще нужен пароль, если я использую ssh-copy, поэтому я пытаюсь внедрить файл с помощью монтирования.

Этапы:

  1. Запустите виртуальную машину A с LiveCD
  2. Смонтируйте корневой диск ВМ A (содержит ОС)
  3. Создайте файл author_keys в ${mount_point}/root/.ssh/
  4. Поместите открытый ключ виртуальной машины B в файл author_keys.
  5. Остановите виртуальную машину A и удалите LiveCD, затем снова запустите виртуальную машину A.
  6. Доступ к ВМ A из ВМ B по команде

    ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o PasswordAuthentication=no [email protected]

Результаты:

debug2: we did not send a packet, disable method
debug3: authmethod_lookup publickey
debug3: remaining preferred: keyboard-interactive
debug3: authmethod_is_enabled publickey
debug1: Next authentication method: publickey
debug1: Trying private key: /root/.ssh/identity
debug3: no such identity: /root/.ssh/identity
debug1: Offering public key: /root/.ssh/id_rsa
debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply
debug3: Wrote 368 bytes for a total of 1645
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
debug1: Trying private key: /root/.ssh/id_dsa
debug3: no such identity: /root/.ssh/id_dsa
debug2: we did not send a packet, disable method
debug1: No more authentication methods to try.
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).

Но после того, как я выполнил следующие команды, он работает (файловый режим - все 600, а не разница с командой diff)

mv authorized_keys authorized_keys_bak
cp authorized_keys_bak authorized_keys

поэтому я пытаюсь ввести его снова, но на этот раз я создаю пустой файл author_keys перед запуском с LiveCD и пропускаю шаг 3, остальные шаги все те же, на это время ВМ B может получить доступ к ВМ A без пароля

Вопросы:

  1. Свойство для author_keys и author_keys_bak одинаковое, почему одно работает, а другое не работает?

  2. Может у меня author_keys работает только тогда, когда я создаю файл, не монтируемый с LiveCD?


person maggiexiang    schedule 23.09.2014    source источник


Ответы (1)


ssh-copy-id запросит у вас пароль один раз, чтобы ввести ключи в удаленную систему.

Журналы, которые вы показали, относятся к ssh-клиенту. Нам также понадобятся журналы ssh-сервера, чтобы проверить, почему ssh-сервер не может проверить учетные данные пользователя.

Из журналов клиента мы можем сказать, что он пытался выполнить аутентификацию на основе открытого ключа (без пароля), но потерпел неудачу (означает отклонение сервером). Таким образом, оставшийся метод - «интерактивный с клавиатурой» (который поддерживается сервером), но клиент не поддерживает его, поэтому нет метода аутентификации, который можно было бы попробовать, поэтому он не удался.

Можете ли вы также проверить следующие вещи для рабочего и нерабочего сценария?

проверьте открытый ключ пользователя на клиенте и сервере, который используется для аутентификации на клиенте -> /users//.ssh/id_rsa.pub на сервере -> /etc/ssh/authorized_keys (проверьте запись для вашего имени пользователя)

person Sujal Sheth    schedule 23.09.2014
comment
Открытый ключ на клиенте совпадает с ключом на сервере. и также нет проблем с именем хоста, как когда я выполняю следующую команду на сервере. клиент сможет получить доступ к серверу без пароля - person maggiexiang; 23.09.2014
comment
Я предполагаю, что проблема связана с монтированием, так как это место может быть недоступно в процессе, на котором работает sshd. - person Sujal Sheth; 23.09.2014
comment
когда я запускаю ssh с сервера, клиент запускается нормально, а не с LiveCD, так что вы имеете в виду, что должна быть какая-то проблема с созданием файла во время монтирования? - person maggiexiang; 23.09.2014
comment
Да, это может быть причиной. - person Sujal Sheth; 23.09.2014
comment
но нет никакой разницы между этими двумя файлами, один в порядке, один не в порядке, непонятно, есть идея найти первопричину? - person maggiexiang; 24.09.2014
comment
Вы можете попробовать запустить ssh-сервер в режиме отладки. Он будет хранить журналы в файле. Мы можем проанализировать этот файл, который может дать некоторые подсказки. - person Sujal Sheth; 30.09.2014