Поиск по сайту:

[Решено] Разрешение отклонено (открытый ключ) Ошибка SSH в Linux


В этом кратком руководстве показано, как исправить ошибку ssh «sign_and_send_pubkey: ошибка подписи: агент отказался от операции. Разрешение отклонено (открытый ключ)» в Linux.

В этом кратком руководстве показано, как исправить ошибку ssh «sign_and_send_pubkey: ошибка подписи: агент отказался от операции. Разрешение отклонено (открытый ключ)» в Linux.

Если вы пытаетесь подключиться к удаленному серверу через SSH, вы можете столкнуться с ошибкой отказа в доступе. Эта ошибка может произойти по нескольким причинам.

  • Аутентификация на основе пароля отключена в удаленной системе

  • Ваш открытый ключ не добавляется на сервер, который допускает только авторизацию на основе ключа.

  • Неправильные права доступа к файлам для ключей SSH.

И решение этой проблемы зависит от точной причины ошибки.

В моем случае открытый и закрытый ключи хранились на рабочем столе Ubuntu 16.04. После выпуска Ubuntu 18.04 я решил перейти на более новую версию. Я предпочитаю новую установку обновлениям дистрибутива.

Итак, я сделал резервную копию основных папок моего домашнего каталога, включая папку .ssh с открытым и закрытым ключами на внешнем диске.

После установки я включил SSH в Ubuntu 18.04 и восстановил все, включая ключи SSH.

Теперь, когда я попытался подключиться к удаленному серверу с помощью ssh, я подумал, что это сработает сразу, потому что у меня были одни и те же открытый и закрытый ключи.

Но это не сработало. SSH выдал мне эту ошибку:

sign_and_send_pubkey: signing failed: agent refused operation
[email : Permission denied (publickey).

Если вы попали в аналогичную ситуацию, когда вы скопировали ключи SSH из другого источника, позвольте мне показать вам, как исправить эту ошибку SSH.

Исправьте права доступа к файлам в папке ~/.ssh и ее содержимом.

Как правило, вы можете установить следующие разрешения для каталога ssh и его файлов (закрытые ключи, открытые ключи, известные_хосты, файл конфигурации ssh и т. д.)

.ssh directory

700 ((drwx------)

public keys

644 (-рв-р--р--)

private keys

600 (-rw-------)

authorized_keys

600 (-rw-------)

known_hosts

600 (-rw-------)

config

600 (-rw-------)

Возможно, у вас нет всех файлов, но у вас должны быть здесь открытый и закрытый ключи.

Теперь давайте посмотрим, как изменить права доступа к файлам для ключей ssh и других файлов.

Исправление ошибки «Отказано в доступе (открытый ключ)»

Итак, проблема здесь в правах доступа к файлам. Видите ли, когда я копировал файлы, USB-накопитель был в формате Microsoft FAT. Этот файл не поддерживает разрешения файлов UNIX/Linux.

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

Для SSH права доступа к файлам слишком открыты. Просто не разрешено иметь права 777 для открытых или закрытых ключей. И именно поэтому здесь SSH отказал в соединении.

ls -l .ssh
-rwxrwxrwx 1 abhishek abhishek 1766 Nov 12  2017 id_rsa
-rwxrwxrwx 1 abhishek abhishek  398 Nov 12  2017 id_rsa.pub
-rwxrwxrwx 1 abhishek abhishek 4214 Sep 21 21:39 known_hosts

Закрытый ключ должен иметь разрешения на чтение и запись только для пользователя и никаких других разрешений для группы и других лиц.

Вы должны изменить разрешение с помощью команды chmod:

chmod 600 ~/.ssh/id_rsa

Точно так же открытый ключ не должен иметь разрешений на запись и выполнение для группы и других.

chmod 644 ~/.ssh/id_rsa.pub

Теперь, когда вы установили правильные разрешения, вы можете снова подключиться к ssh. В это время он запросит ваш пароль администратора, чтобы разблокировать ключи. Введите пароль администратора, и все готово.

Это также преподало мне урок о том, что копирование файлов — плохая идея, и необходимо сделать правильную резервную копию, иначе все файлы будут иметь опасные разрешения 777. Мне пришлось рекурсивно изменить права доступа к файлам во всем домашнем каталоге, и поверьте мне, это было не очень приятно.

Как я уже говорил ранее, причины этой ошибки могут быть разные. Что касается проблемы, связанной с разрешением на открытие файла, это исправление должно помочь вам исправить ошибку «Отказано в разрешении (открытый ключ)» с помощью SSH. Если вам интересно, вы можете прочитать больше об основах SSH.

Дайте мне знать в разделе комментариев, помогло ли вам исправление или нет. Также выскажите свое мнение по поводу копирования ключей ssh на другие компьютеры.

Статьи по данной тематике: