Попытка сделать SSH-аутентификацию с ключевыми файлами: сервер отказался от нашего ключа

Я пытаюсь настроить SSH-аутентификацию с ключевыми файлами вместо имени пользователя / пароля. Клиент - это ящик Windows с PuTTY, а сервер - сервер Ubuntu 12.04 LTS.

Я загрузил puttygen.exe и создал ли он пару ключей. В /etc/ssh/sshd_config у меня есть эта строка:

AuthorizedKeysFile %h/.ssh/authorized_keys

и в файле открытого ключа моего клиента сказано следующее:

---- BEGIN SSH2 PUBLIC KEY ----
Comment: "my@email.address.com"
ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAr3Qo6T5XU06ZigGOd3eKvfBhFLhg5kWv8lz6
qJ2G9XCbexlPQGanPhh+vcPkhor6+7OmB+WSdHeNO652kTofnauTKcTCbHjsT7cJ
GNrO8WVURRh4fabknUHPmauerWQZ6TgRPGaz0aucU+2C+DUo2SKVFDir1vb+4u83
AV1pKxs=my@email.address.com
---- END SSH2 PUBLIC KEY ----

Я скопировал часть из «ssh-rsa AAA "на" my@email.address.com "и поместите это в файл ~/.ssh/authorized_keys на моем сервере (в моей собственной домашней папке). В PuTTY в разделе Connection> SSH> Auth я ввел путь к закрытому ключу, сгенерированному на моем клиенте, и сохранил настройки сеанса.

Я перезапустил ssh-сервер с помощью

sudo service ssh restart

Теперь, если я загружу профиль в PuTTY (я подтвердил, что закрытый ключ по-прежнему находится в Connection> SSH> Auth и что путь правильный) и запустить профиль, он говорит

Server refused our key

Я попытался поставить открытый ключ в файле под каталогом ./ssh/authorized_keys/, но это не помогло, поэтому я использовал ./ssh/authorized_keys в качестве файла, вставив в него ключ. Я также попытался создать пару частного / открытого ключа на сервере, поместив открытый ключ в ./ssh/authorized_files и загрузив частную в PuTTY на моем клиенте. Перезагрузка сервера тоже не помогла.

Я обнаружил, что ошибка может быть решена путем помещения ключа в место вне домашней папки пользователя, но это полезно только в том случае, если домашняя папка зашифрована, а это

Также пытался генерировать 4096-битный ключ, считая, что 1024 был слишком коротким.

Как я могу заставить это работать? Спасибо!

EDIT:

Хорошо, /var/log/auth.log сказал:

sshd: Authentication refused: bad ownership or modes for directory /home/vorkbaard/.ssh

Google сообщает мне, что ~/.ssh/ должно быть 700, а ~/.ssh/authorized_keys должно 600, поэтому я сделал это. Теперь /var/log/auth.log говорит:

sshd: error: key_read: uudecode AAAAB3N [etc etc etc until about 3/4 of my public key]
1
задан 11 June 2013 в 17:59

13 ответов

Я только столкнулся с этой проблемой. Несмотря на правильность настройки конфигурации, как уже упоминалось в этом потоке (разрешения на authorized_keys и т. Д.), Оказалось, что у меня был открытый ключ в неправильном формате. Это было в виде:

---- BEGIN SSH2 PUBLIC KEY ----
Comment: "imported-openssh-key"
AAAAB3NzaC1yc2EAAAADAQABAAABAQDUoj0N3vuLpeviGvZTasGQ...
... lPmTrOfVTxI9wjax2JvKcyE0fiNMzXO7qiHJsQM9G9ZB4Lkf71kT
---- END SSH2 PUBLIC KEY ----

, который не работал. Но он работал, имея его в форме:

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDU.....j0N3vuLpeviGvZTasGQa1rcJiPXQMW7v3uurb+n94B9MQaaWR0odsg5DJQL92TNenOda5BO1nd08y6+sdLQmHXExTz6X8FzgoVsAkEl3RscxcxHUksiKA9JfTo38vQvG/bPxIHMCuSumCQVA1laf3rO/uOrkcB7iMWhaoi1/z6AbFtPzeh7xjGfInMWwtBI0CsHSRF73VWIxT26w0P+KjafCjSn/7vDO1bT8QHujSQelU/GqaVEvbbvPl1a7POVjKgHLNekolwRKfNeVEewcnmZaoqfHgOKlPmTrOfVTxI9wjax2JvKcyE0fiNMzXO7qiHJsQM9G9ZB4Lkf71kT UserName@HOSTNAME
18
ответ дан 24 May 2018 в 21:11
  • 1
    Вы можете использовать ssh-keygen -i -f filenameofwindowsformpub.key, чтобы преобразовать открытый ключ в формат, понятный вашему серверу OpenSSH. – Black 23 December 2015 в 13:24
  • 2
    Да, это сработало для меня! Он должен быть в одной строке. Не могу поверить, что это было только так! – adelriosantiago 20 July 2016 в 07:19
  • 3
    HI kuraara Я считаю, что приведенная выше инструкция от @Black должна быть заметной в ответе. – ekerner 12 March 2017 в 07:07
  • 4
    Могу ли я добавить комментарий к формату сервера OpenSSH? Для человека трудно сказать, какой компьютер представляет этот ключ. – user1700890 8 January 2018 в 16:08

проблема заключается в том, что окна используют другую новую строку, чем linux, поэтому при копировании ключа из окон в linux в конце строки есть \ n в конце строки, которую вы не можете видеть в linux в редакторе.

Если вы зацикливаете /var/log/auth.log и пытаетесь войти в систему, ошибка выглядит так:

sshd: error: key_read: uudecode AAAAB3N [....] == \ n

Если вы измените свой ключ на окнах, чтобы он был в одной строке без новой строки в конце и скопировал ее в linux, он должен работать (сделал трюк для меня).

9
ответ дан 24 May 2018 в 21:11
  • 1
    это была моя проблема, но я не видел ничего в auth.log, чтобы предположить, что это было так. разочарование ... – Anthony 12 August 2016 в 16:49

Мне пришлось менять разрешения на домашний каталог

chmod 700 ~
7
ответ дан 24 May 2018 в 21:11

Мне пришлось изменить разрешения каталога ~ / .ssh от 770 до 700 и разрешения файлов ~ / .ssh / authorized_keys с 660 до 600.

По какой-то причине удаление групповых прав устранило эту проблему для me.

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
6
ответ дан 24 May 2018 в 21:11

Файл ~/.ssh/authorized_keys требует, чтобы клавиши были в одной строке. Если вы добавили его по нескольким строкам, как в пасте выше, попробуйте присоединиться к строкам.

5
ответ дан 24 May 2018 в 21:11
  • 1
    Спасибо, это имеет смысл, и теперь я понимаю, почему это файл, а не каталог. Однако это не помогло. – Forkbeard 11 June 2013 в 17:07
  • 2
    для любого, кто может быть смущен этим, то, что он имеет в виду, каждый ключ сам должен быть на одной линии, но разные ключи должны быть на разных линиях. – Anthony 12 August 2016 в 16:50

В дополнение ко всем приведенным выше ответам убедитесь, что вы скопировали и ввели ключ из puttygen правильно!

Если вы просто дважды щелкните основную строку строки, чтобы выбрать ее, вы можете не получить всю строку, потому что текстовое поле разбивает строки на некоторые символы, например +, так что вы не выбирайте текст после символа + (который вы не видите, потому что текстовое поле слишком мало). Обязательно выберите всю строку вручную, с ssh-rsa до самого конца текстового поля.

1
ответ дан 24 May 2018 в 21:11

Иногда это может быть проблема, связанная с наличием открытого ключа в одной строке, этот подход, похоже, решает его

echo 'the content of the public key' > /root/.ssh/authorized_keys
1
ответ дан 24 May 2018 в 21:11

для меня проблема заключалась в том, что я создал ~/.ssh/authorized_keys, используя root, поэтому root принадлежит. Мне пришлось chown sshuser:sshuser ~/.ssh/authorized_keys, затем он начал работать

1
ответ дан 24 May 2018 в 21:11

Я тоже столкнулся с этой ошибкой и решил ее, изменив разрешения файла authorized_keys на 600.

chmod 600 ~/.ssh/authorized_keys
1
ответ дан 24 May 2018 в 21:11

Вот что сработало для меня:

В puttygen после создания ваших ключей убедитесь, что вы скопировали и ввели информацию из верхнего поля, чтобы перейти в файл authorized_keys. Если вы сохраните свой открытый ключ на своей клиентской машине, а затем откройте его, текст будет отличаться от текста в верхней части экрана puttygen. Опять же, убедитесь, что вы скопировали и вставляете текст из TOP экрана puttygen (после того, как вы создали свои ключи) в файл authorized_keys, который должен быть расположен в ~/.ssh.

0
ответ дан 24 May 2018 в 21:11

Общая ошибка заключается в том, что люди используют текстовый редактор (например, Vim) и вставляют скопированный текст перед активацией «insert» (нажмите + i в Vim перед тем, как наклеить)

0
ответ дан 24 May 2018 в 21:11

Фактически, я изменил разрешение authorized_keys на 644, затем проблема решена.

chmod 644 ~/.ssh/authorized_keys
0
ответ дан 24 May 2018 в 21:11

Я создавал файлы .ssh и authorized_keys во время входа в систему под именем root, что давало неправильные разрешения. Он также разместил все файлы в корневом каталоге. Я полагаю, что это корень многих проблем с «сервером отказал ключ».

Изменение прав собственности на эти файлы желаемому пользователю не будет хорошей практикой, поэтому я повторил шаги и убедился Я вошел в систему как пользователь, которому я захотел снова использовать SSH и создал .ssh и authorized_keys. Ошибка.

Инструкции по подключению Win7 к серверу Xubuntu 15.04: Как создать SSH-ключи с Putty для подключения к VPS

0
ответ дан 24 May 2018 в 21:11

Другие вопросы по тегам:

Похожие вопросы: