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_keys
bycat public-key >> ~/.ssh/authorized_keys
затемsudo chmod 700 ~/.ssh
sudo chmod 600 ~/.ssh/authorized_keys
затем вы должны изменить /etc / ssh/sshd_config,RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
моя операционная система CentOS 7, это мой первый раз к вопросу anwser ,я попробую мои усилия сделать, Спасибо!
у меня есть эта проблема, где sshd только читает из
authorized_keys2
.копирование или переименование файла исправили проблему для меня.
cd ~/.ssh sudo cat authorized_keys >> authorized_keys2
P. 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 на .