Putty: получение сервера отказано в нашей ключевой ошибке
Я создал пару ключей с помощью puttygen.exe (клиент-windows 8). На сервере (Ubuntu 12.04.3 LTS), я поставил свой открытый ключ в ~/.ssh/authorized_keys. Открытый ключ таков:
ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAopfM6RHOgnuc4Aftn3t4k5UIAT3StCAbn/vg/IMbphbXadshC+79sIlRq3P4zGzMjFTP4hKnzu6ehLV5lmj/qorq3SKT+bPO5Qrac3VbIlrGvuBFDDjP82I2Hwg3HzlsFTstqk++KToapaTYZ7jENEYyPl2wnzITJnt//+4U1o6juoXTKgdNE02hHnRZyHOV/bnkZyJJCEwJv5U0eXSThQnhmXtUxGT8U0HQNFiXfqIIVllhWiCnyrhhIaKz/CIJNAd2VmzyJzQtJtTQX8aWSNVrZju6Sv2/RncTNvsACdNgjjh/FH8PQXaep00jlJ3MOdsC8vz6VSPFbh6iKy1oLQ== rsa-key-20131231
так что это правильно (одна строка, без комментариев, начинается с ssh-rsa и т. д.)
.ssh уровень разрешения dir составляет 700, разрешение файла authorized_keys-600. И каталог, и файл принадлежат фактическому пользователю, который я пытаюсь войти в систему.
когда я пытаюсь подключиться, я получаю 'server refused our key' и сервер запрашивает пароль. Вот и все. Ничего не регистрируется в /var/log/auth.log при попытке войти с помощью ключа.
Я искал везде, и все статьи и советы упоминают настройку chmod 600 и 700 для файла/каталога и правильное форматирование ключа. Я сделал все это, все еще получая ошибку "отказано в нашем ключе", и у меня нет идей.
23 ответа:
хорошо, в моем ключе была небольшая опечатка. По-видимому, при вставке в файл первая буква была отрезана, и она началась с sh-rsa вместо ssh-rsa.
nrathathaus-ваш ответ был очень полезен, большое спасибо, этот ответ приписывается вам :) я сделал, как вы сказали, и установить это в sshd_conf:
LogLevel DEBUG3посмотрев на журналы я понял, что sshd читает ключ правильно, но отклоняет его из-за неправильного идентификатора.
добавление нескольких мыслей, как другие ответы помогли, но не были точно подходят.
прежде всего, как указано в принятом ответе, edit
/etc/ssh/sshd_configи установите уровень журнала:
LogLevel DEBUG3затем попробуйте аутентифицировать, и когда это не удается, найдите файл журнала:
/var/log/secureОна будет иметь ошибки, которые вы ищете.
Я добавляю этот ответ, чтобы помочь всем, кто, как и я, часами рыскал по интернету без успеха.
ВАША ДОМАШНЯЯ ПАПКА МОЖЕТ БЫТЬ ЗАШИФРОВАНА.
или, если на то пошло, любая папка, в которую вложен ваш файл "authorized_keys". Блин, это сэкономило бы мне кучу времени. Чтобы проверить, перейдите выполнить
ls -Aв каталоге, состояние шифрования которого вы хотите определить. Если папка содержит папку с именем ".encryptfs", ответ-да, эта папка зашифрована. Это будет препятствовать вашей способности получить доступ к файлу "authorized_keys", содержащему открытый ключ ssh, необходимый для проверки.
чтобы исправить это, поместите файл "authorized_key" в дерево каталогов, которое не содержит шифрования.
простое решение, которое я нашел, было переместить
authorized_keysфайл вдали от скрытого .каталог ssh и поместите его в системный каталог ssh:/etc/ssh/keys/authorized_keysКак только я сделал это, он работал без проблем.
имея ту же проблему в windows server 2008 r2 и исследовал много, чтобы решить, наконец, сделал это следующим образом:
открыть C:\Program файлы (x86)\OpenSSH\etc\sshd_config с помощью textpad или любого другого текстового редактора
снимите комментарий со следующей строки, после удаления они должны выглядеть следующим образом:
RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keysсохраните его и попробуйте войти с закрытым ключом сейчас. повеселись.
в моем случае, это проблема разрешения.
я изменил уровень журнала
DEBUG3и/var/log/secureЯ вижу эту строку:Authentication refused: bad ownership or modes for directoryпогуглил и нашел этот пост:
https://www.daveperrett.com/articles/2010/09/14/ssh-authentication-refused/
chmod g-w /home/your_user chmod 700 /home/your_user/.ssh chmod 600 /home/your_user/.ssh/authorized_keysв основном, он говорит мне:
- избавиться от группы
wразрешение вашего пользователя home dir- изменить разрешите
700на.sshреж- изменить разрешения для
600на .и это работает.
другое дело, что даже я включил корневой логин, я не могу получить
rootна работу. Лучше использовать другого пользователя.
спасибо nrathaus и
/var/log/auth.logрасследование на уровне отладки происходит следующее.другая причина заключается в том, что ваш домашний каталог может иметь разрешения, отличные от 755.
спасибо!
спасибо
LogLevel DEBUG3(в моем случаеCentOS 7лог в/var/log/secure)получается мой
.ssh/authorized_keysрежим644, а не600иsshdчувствовал, что в одиночку было не-идти, который я, наконец, обнаружил, читая этот файл журнала!
в моем случае мне пришлось отключить SELinux на Centos6. 6, чтобы заставить его работать :)
Edit/etc/selinux / config и установите следующее, а затем перезагрузите хост.
selinux=disabledкстати...забыл упомянуть, что я должен был установить LogLevel=DEBUG3, чтобы определить проблему.
у меня была такая же ошибка на solaris, но найдена в /var/adm/splunk-auth.запишите следующее:
sshd: [auth.debug] debug1: PAM conv function returns PAM_SUCCESS sshd: [auth.notice] Excessive (3) login failures for weblogic: locking account. sshd: [auth.debug] ldap pam_sm_authenticate(sshd-kbdint weblogic), flags = 1 sshd: [auth.info] Keyboard-interactive (PAM) userauth failed[9] while authenticating: Authentication failedв /etc / shadow учетная запись была заблокирована:
weblogic:*LK*UP:16447::::::3удалена часть " *LK*":
weblogic:UP:16447::::::3и я мог бы использовать SSH с authorized_keys как обычно.
В моем случае это было вызвано (
/etc/ssh/sshd_config):PermitRootLogin noизменено на
yes, перезапустил службу и вошел нормально.
Я столкнулся с этой проблемой сегодня, и моя проблема заключалась в том, что при копировании открытого ключа из файла также включаются новые символы строки. Вы можете использовать ":set list" в vim, чтобы увидеть все скрытые новые строки и обязательно удалить все новые строки, кроме последней. Кроме того, мой ключ отсутствовал "ssh-rsa" в начале. Убедитесь, что у вас есть и это.
для тех, кто получает эту ошибку от Windows Server, я получил эту же ошибку, и это была проблема с учетной записью пользователя. Во многих организациях групповая политика для администраторов может не разрешать настройку SSH-сервера и подключений. При таком типе установки это должно быть сделано из учетной записи локального администратора. Возможно, стоит изучить, если вы подтвердили, что в открытом ключе нет никаких опечаток.
Я использую файл PUTTYgen с psftp, и я столкнулся с этой проблемой на моем сервере Windows, когда нам потребовалось создать новые ключи для клиента. Элемент private_key_name.файл ppk и open_ssh.txt-файл должен быть в том же каталоге для подключения к работе.
я решил эту проблему, puttygen-это стороннее программное обеспечение, ssh-ключ, который генерируется им, не используется напрямую, поэтому вы должны внести некоторые изменения. Например, это выглядит так
---- BEGIN SSH2 PUBLIC KEY ---- Comment: "rsa-key-20170502" AAAAB3NzaC1yc2EAAAABJQAAAQEAr4Ffd3LD1pa7KVSBDU+lq0M7vNvLp6TewkP7 *******C4eq1cdJACBPyjqUCoz00r+LqkGA6sIFGooeVuUXTOxbYULuNQ== ---- END SSH2 PUBLIC KEY ----я опускаю некоторые алфавиты в середине, замененные*, если нет, StackOverflow сказал мне, что формат кода неверен, не позволяйте мне размещать。
это мой ssh ключ, сгенерированный puttygen, вы должны изменить на это
ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAr4Ffd3LD1pa7KVSBDU+lq0M7vNvLp6TewkP7wfvKGWWR7wxA8GEXJsM01FQw5hYWbNF0CDI7nCMXDUEDOzO1xKtNoaidlLA0qGl67bHaF5t+0mE+dZBGqK7jG9L8/KU/b66/tuZnqFqBjLkT+lS8MDo1okJOScuLSilk9oT5ZiqxsD24sdEcUE62S8Qwu7roVEAWU3hHNpnMK+1szlPBCVpbjcQTdiv1MjsOHJXY2PWx6DAIBii+/N+IdGzoFdhq+Yo/RGWdr1Zw/LSwqKDq1SmrpToW9uWVdAxeC4eq1cdJACBPyjqUCoz00r+LqkGA6sIFGooeVuUXTOxbYULuNQ== yourname@hostnameв моем случае, у меня удалены некоторые комментарии, такие как
---- BEGIN SSH2 PUBLIC KEY ---- Comment: "rsa-key-20170502" ---- END SSH2 PUBLIC KEY ----и добавить
ssh-rsaв начале, добавитьyourname@hostnameв последний. Примечание: не удалить==в прошлом, и вы должны изменить "Ваше имя" и "имя" для вас, в моем случае этоuaskh@mycomputer, ваше имя - это то, что вы хотите войти в свой vps .когда все это будет сделано, вы можете загрузить открытый ключ в дом uaskh~/.ssh/authorized_keysbycat public-key >> ~/.ssh/authorized_keysзатемsudo chmod 700 ~/.sshsudo chmod 600 ~/.ssh/authorized_keysзатем вы должны изменить /etc / ssh/sshd_config,RSAAuthentication yesPubkeyAuthentication yesAuthorizedKeysFile .ssh/authorized_keysмоя операционная система CentOS 7, это мой первый раз к вопросу anwser ,я попробую мои усилия сделать, Спасибо!
у меня есть эта проблема, где sshd только читает из
authorized_keys2.копирование или переименование файла исправили проблему для меня.
cd ~/.ssh sudo cat authorized_keys >> authorized_keys2P. S. Я с помощью Putty из Windows и использовать PuTTyKeygen для генерации пары ключей.
Я столкнулся с аналогичной проблемой при попытке входа в систему через Mobaxterm. Закрытый ключ был сгенерирован через puttygen. Регенерация ключа помогла в моем случае.
при использовании Cpanel вы можете проверить, авторизован ли ключ в
доступ по SSH >> ключи >> управление >> авторизовать и Деавторизовать.
если вы получаете эту ошибку в
/var/log/secureошибка: key_read: key_from_blob AA
Aab3nzac1yc2eaaaaabjqaaaqeaoo3pfwx04nfg+rKz93l7em1BsUBzjHPMsswDэто означает, что ваш ключ имеет пространство, если вы создали ключ через puttgen при просмотре
.ppkфайл, он будет выглядеть так:AAAAB3NzaC1yc2EAAAABJQAAAQEAoo3PFwX04NFG+rKz93l7em1BsUBzjHPMsswD al74MLaJyhQD0pE23NS1izahbo1sJGnSJu2VJ//zxidSsba6xa6OvmeiKTwCz0E5 GMefdGVdpdbTlv99qjBl1+Nw1tDnHIC0+v9XmeZERQfCds9Kp1UivfReoYImntBC gLtNyqRYrSu8csJCt7E1oY8QK6WP1vfYgAQ2taGyS9+g7FHyyf5VY2vH3oWzzbqz xjsSLAv3zEQSm1LzSw9Pvc8iwasFyUMBOPj31CKQYTXyX8KpJTr0Zb7oqMauBE5L VwxZhlcJHbj0FsMbF/+GRjvgexymCi3bHmwGQ6FEADNd0RkhdQ==и когда вы попытаетесь вставить его, вы получите ошибку в чтении ключа, поэтому попробуйте отредактировать ключ и сделать его одной строкой и попробовать
это должно выглядеть как-то
ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAoo3PFwX04NFG+rKz93l7em1BsUBzjHPMsswDal74MLaJyhQD0pE23NS1izahbo1sJGnSJu2VJ//zxidSsba6xa6OvmeiKTwCz0E5GMefdGVdpdbTlv99qjBl1+Nw1tDnHIC0+v9XmeZERQfCds9Kp1UivfReoYImntBCgLtNyqRYrSu8csJCt7E1oY8QK6WP1vfYgAQ2taGyS9+g7FHyyf5VY2vH3oWzzbqzxjsSLAv3zEQSm1LzSw9Pvc8iwasFyUMBOPj31CKQYTXyX8KpJTr0Zb7oqMauBE5LVwxZhlcJHbj0FsMbF/+GRjvgexymCi3bHmwGQ6FEADNd0RkhdQ== username@domainname
что работает для меня это:
- остановил экземпляр ec2
- снимите объемом
- прикрепите том со старым экземпляром, используя тот же ключ и смог SSH
- установите том в некоторую временную папку
- проверил файл в каталоге mount_point/home/ec2-user/.ssh / authorized_keys
- В идеале, этот файл должен иметь нашу ключевую информацию, но для меня этот файл был пусто
- скопировал старый экземпляр файла authorized_keys на новый смонтированный том
- отключить устройства
- присоединить к исходному экземпляру ec2
- запустите его и дайте ему пройти проверку здоровья
на этот раз это работает для меня. Но я не знаю, почему у него нет информации о моем ключевом файле сначала, когда экземпляр был запущен. Проверьте эту ссылку тоже https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/TroubleshootingInstancesConnecting.html#TroubleshootingInstancesConnectingMindTerm
другая причина может быть UTF-8 BOM на .