В этом кратком руководстве вы узнаете, как исправить ошибку ssh. “sign_and_send_pubkey: signing failed: agent refused operation Permission denied (publickey)” в Linux.
Если вы пытаетесь подключиться к удаленному серверу через SSH, вы можете столкнуться с ошибкой, отказано в доступе. Эта ошибка может произойти по ряду причин. И исправление этой проблемы зависит от причины ошибки.
В нашем случае у нас были общедоступные и закрытые ключи, хранящиеся на рабочем столе Ubuntu 16.04. После выпуска Ubuntu 18.04 мы решили перейти на эту новую версию. Мы предпочитаем новую установку поверх обновлений дистрибутива.
Итак, мы сделали резервную копию основных папок моего домашнего каталога, включая папку .ssh, на которой были открытые и закрытые ключи на внешнем диске. После установки Ubuntu 18.04 мы восстановили все, включая ключи SSH.
Теперь, когда мы попытались подключиться к удаленному серверу с помощью ssh, то подумали, что это сработает сразу, потому что были такие же публичные и закрытые ключи.
Но это не сработало. SSH выдал эту ошибку:
sign_and_send_pubkey: signing failed: agent refused operation
root@xxx.xxx.xxx.xx: Permission denied (publickey).
Если вы находитесь в аналогичной ситуации, когда вы скопировали свои SSH-ключи из другого источника, позвольте показать вам, как исправить эту ошибку SSH.
Поэтому проблема заключается в разрешении файлов. Видите ли, когда мы копировали файлы, USB флешка была в формате файла FAT Microsoft. Этот файл не поддерживает разрешения файлов UNIX/Linux.
И, следовательно, разрешения на скопированные ключи ssh были изменены на 777.
Для SSH права доступа к файлу слишком открыты. Просто не разрешено иметь 777 для открытых или закрытых ключей. И вот почему SSH отказался от подключения.
ls -l .ssh
-rwxrwxrwx 1 andreyex andreyex 1766 Nov 23 2017 id_rsa
-rwxrwxrwx 1 andreyex andreyex 398 Nov 23 2017 id_rsa.pub
-rwxrwxrwx 1 andreyex andreyex 4214 Sep 15 12:38 known_hosts
Закрытый ключ должен иметь права на чтение и запись только для пользователя и другие разрешения для группы и других.
Вы должны изменить разрешение, используя команду CHMOD:
chmod 600 ~/.ssh/id_rsa
Аналогично, открытый ключ не должен иметь права на запись и выполнение для группы и других.
chmod 644 ~/.ssh/id_rsa.pub
Теперь, когда вы установили правильные разрешения, вы можете снова подключиться к ssh. Он попросит пароль администратора чтобы разблокировать ключи. Введите пароль администратора.
Это также научило нас одному уроку, копирование и вставка файлов – плохая идея, и правильная резервная копия должна быть сделана иначе, все файлы будут иметь опасные разрешения 777 на них. Мне пришлось рекурсивно менять права доступа к файлу во всем каталоге Home и поверьте мне, это было не очень приятно.
Как мы сказали ранее, для этой ошибки могут быть разные причины. Для проблемы, связанной с разрешением на открытие файла, это исправление должно помочь вам исправить ошибку, Permission denied (publickey) в SSH.
Дайте нам знать в разделе комментариев, исправление работает для вас или нет. Также предложите свое мнение о копировании ключей ssh на другие компьютеры.
Блин, а так удобно пользоваться горячими клавишами для вставки! У меня тож была такая проблема, пришлось программиста просить править, а тут оказывается не всё так страшно. Теперь буду знать, что и сама справиться могу)
~/.ssh ls -l
total 40
-rw——- 1 u0_a243 u0_a243 780 Oct 20 21:03 android
-rw-r–r– 1 u0_a243 u0_a243 271 Oct 20 21:03 android.pub
-rw——- 1 u0_a243 u0_a243 283 Oct 20 22:19 authorized_keys
-rw——- 1 u0_a243 u0_a243 222 Oct 20 20:56 config
-rw-r–r– 1 u0_a243 u0_a243 183 Oct 20 22:21 known_hosts
у меня все хорошо с правами? получаю ошибку Permission denied (publickey).
Спасибо большое!! Очень помогло)