Я пытаюсь настроить 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 был слишком коротким.
Как я могу заставить это работать? Спасибо!
Хорошо, /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]
Я только столкнулся с этой проблемой. Несмотря на правильность настройки конфигурации, как уже упоминалось в этом потоке (разрешения на 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
проблема заключается в том, что окна используют другую новую строку, чем linux, поэтому при копировании ключа из окон в linux в конце строки есть \ n в конце строки, которую вы не можете видеть в linux в редакторе.
Если вы зацикливаете /var/log/auth.log и пытаетесь войти в систему, ошибка выглядит так:
sshd: error: key_read: uudecode AAAAB3N [....] == \ nЕсли вы измените свой ключ на окнах, чтобы он был в одной строке без новой строки в конце и скопировал ее в linux, он должен работать (сделал трюк для меня).
Мне пришлось менять разрешения на домашний каталог
chmod 700 ~
Мне пришлось изменить разрешения каталога ~ / .ssh от 770 до 700 и разрешения файлов ~ / .ssh / authorized_keys с 660 до 600.
По какой-то причине удаление групповых прав устранило эту проблему для me.
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
Файл ~/.ssh/authorized_keys требует, чтобы клавиши были в одной строке. Если вы добавили его по нескольким строкам, как в пасте выше, попробуйте присоединиться к строкам.
В дополнение ко всем приведенным выше ответам убедитесь, что вы скопировали и ввели ключ из puttygen правильно!
Если вы просто дважды щелкните основную строку строки, чтобы выбрать ее, вы можете не получить всю строку, потому что текстовое поле разбивает строки на некоторые символы, например +, так что вы не выбирайте текст после символа + (который вы не видите, потому что текстовое поле слишком мало). Обязательно выберите всю строку вручную, с ssh-rsa до самого конца текстового поля.
Иногда это может быть проблема, связанная с наличием открытого ключа в одной строке, этот подход, похоже, решает его
echo 'the content of the public key' > /root/.ssh/authorized_keys
для меня проблема заключалась в том, что я создал ~/.ssh/authorized_keys, используя root, поэтому root принадлежит. Мне пришлось chown sshuser:sshuser ~/.ssh/authorized_keys, затем он начал работать
Я тоже столкнулся с этой ошибкой и решил ее, изменив разрешения файла authorized_keys на 600.
chmod 600 ~/.ssh/authorized_keys
Вот что сработало для меня:
В puttygen после создания ваших ключей убедитесь, что вы скопировали и ввели информацию из верхнего поля, чтобы перейти в файл authorized_keys. Если вы сохраните свой открытый ключ на своей клиентской машине, а затем откройте его, текст будет отличаться от текста в верхней части экрана puttygen. Опять же, убедитесь, что вы скопировали и вставляете текст из TOP экрана puttygen (после того, как вы создали свои ключи) в файл authorized_keys, который должен быть расположен в ~/.ssh.
Общая ошибка заключается в том, что люди используют текстовый редактор (например, Vim) и вставляют скопированный текст перед активацией «insert» (нажмите + i в Vim перед тем, как наклеить)
Фактически, я изменил разрешение authorized_keys на 644, затем проблема решена.
chmod 644 ~/.ssh/authorized_keys
Я создавал файлы .ssh и authorized_keys во время входа в систему под именем root, что давало неправильные разрешения. Он также разместил все файлы в корневом каталоге. Я полагаю, что это корень многих проблем с «сервером отказал ключ».
Изменение прав собственности на эти файлы желаемому пользователю не будет хорошей практикой, поэтому я повторил шаги и убедился Я вошел в систему как пользователь, которому я захотел снова использовать SSH и создал .ssh и authorized_keys. Ошибка.
Инструкции по подключению Win7 к серверу Xubuntu 15.04: Как создать SSH-ключи с Putty для подключения к VPS