Сообщение "ключ недействителен" на GitHub

Я создал SSH-ключи для новой установки сервера в соответствии с описанной процедурой здесь. Однако, когда я копирую содержимое id_rsa.pub в мой список ключей на GitHub, я получаю сообщение об ошибке " ключ недействителен. Убедитесь, что вы скопировали файл правильно."

сгенерированный ключ is действительно, и я копирую его точно так, как есть (все в одной строке без пробелов в начале/конце).

у кого-нибудь есть идеи что может быть о?

13 ответов


Я пришел сюда, потому что у меня была такая же проблема. Из вашего вопроса я понял, что копирую содержимое из неправильного файла (только , без на


вот некоторые шаги, которые не совсем понятны при копировании / вставке открытого ключа. (Для записи я использовал генератор ключей Putty для своих ключей.)

  • в первой строке введите ssh-rsa.
  • убедитесь, что вы добавили одно пространство после ssh-rsa
  • при копировании / вставке ключа в текстовое поле ключа он должен сохранить символы \n (x0A). Если вы используете блокнот в Windows, вы не увидите эти новые строки, пока не скопируете текст в На GitHub.

обратите внимание на этом скриншоте, есть пробел после ssh-rsa (см. курсор.) Текст открытого ключа также включает в себя три символа \n, поэтому вы можете увидеть, как текст открытого ключа три раза падает до следующей строки в текстовом поле.SSH RSA Key


Я пробую несколько способов, но ни один из них не помогает(моя ОС ubuntu). Затем я подумал, могу ли я распечатать содержимое ~/.ssh / id_rsa.паб с помощью команды "еще".

извините, что у меня нет репутации для публикации изображений! когда я есть, я буду его!

вот url, где вы можете увидеть изображение:

enter image description here

Я скопировал содержимое из командной строки, и это сработало!!!


только для тех, кто смотрит в будущее, еще одна распространенная проблема-это обертывание слов. Например, если вы запустите cat ~/.ssh/id_rsa.pub Он может обернуть линии, таким образом добавив extra \ символов в каждой строке. Удалите их, и ваш ключ должен работать нормально.


Если вы действительно скопировали содержимое вашего id_rsa.pub ключ (в одной непрерывной строке), результат должен выглядеть так (из страница справки GitHub ssh):

ssh key

на OP louism подтверждает, что копипаст вопроса:

  • по очень неясной причине,копирование-вставка из emacs удалена \n после ssh-rsa, и это было причиной проблемы.
  • копируете с VI решена проблема.

рекомендовано by GitHub

копирование SSH-KEY :

работала с xclip скопировать id_rsa.pub ключ, вот так:

1. Установить xclip

sudo apt-get install xclip

2. Копировать с помощью xclip

xclip -sel clip < ~/.ssh/id_rsa.pub


Удачи.


в windows,

просто скопируйте голые ключевые данные из ключевого файла и удалить новые линии. Напишите это ниже в диалоговом окне, чтобы решить вашу проблему. по SSH-RSA-ключ

Примечание: существует пространство между ssh-rsa и key

и вы сделали.


Если вы используете Sublime, вы можете правильно видеть ssh-ключ. Проверьте, есть ли id_rsa.паб

ls -al ~/.ssh

если он на месте, откройте его с помощью sublime text

sudo subl /home/user_name/.ssh/id_rsa.pub

затем скопируйте и вставьте свой открытый ssh-ключ.


в моем случае мне пришлось добавить дополнительное белое правило после моей электронной почты (после всей строки ключа), прежде чем она была принята. Я обнаружил это случайно, после попытки скопировать мой ssh-ключ, введенный в Gitlab.

pbcopy из моего ключа pub прямо из командной строки не работает. Копия из gitlab с дополнительным белым правилом в конце сделала трюк.


У меня просто была эта проблема. Супер разочаровывает. Я подумал, что моя ситуация могла повлиять на решение проблемы. Я использую планшет, пытаясь настроить ключ на сайте githubs через браузер планшета (Chrome), и я копирую ключ из приложения ssh, подключенного к моему удаленному серверу linux.

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

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

кстати, я сам не добавлял никаких новых разрывов строк, таких как упомянутый другими после ssh-rsa.

надеюсь, это поможет другим. Я понятия не имею, почему это произошло. Глупо, что копирование в буфер обмена изменит скопированный текст. О, я также скопировал его прямо из Vim.


у меня была такая же проблема, несмотря на копирование открытого ключа из cat вывод непосредственно с терминала (Cmder / ConEmu). Кажется, что метод, который вы используете для копирования открытого ключа, кажется, имеет значение. Вот способ проверить:

$ ssh-keygen -l -f ~/.ssh/id_rsa.pub
4096 SHA256:...

затем вставьте ключ, который не удается в новый файл, и попробуйте проверить, что:

$ ssh-keygen -l -f test.pub
test.pub is not a public key file.

в моем случае я копировал ключ с выхода терминала с помощью cat; вместо того, чтобы получить ключ от vim работали. Здесь способ открыть ключ в vim с включенным переносом слов:

$ vim "+set wrap" ~/.ssh/id_rsa.pub

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


Если вы используете bash для windows в качестве терминала и копируете через shift + highlighting + ctrl-c, то это решение может работать для вас:

  1. после копирования ключа и вставить его в блокнот:

example ssh key

  1. Теперь перейдите в меню Правка > выбрать все или Ctrl-A

text highlighted

  1. большие количества синей зоны пробел. Вам нужно удалить их с помощью клавиши backspace или delete. Оставьте пробелы в зеленых кругах.

enter image description here

  1. Теперь вы сможете скопировать и вставить эту отредактированную версию в github.

enter image description here


Я знаю, что это вопрос-это cpl лет, но если кто-то в 2018 столкнется с этим:

тогда ниже без проблем:

моя проблема я пытался скопировать закрытый ключ

id_rsa

вместо публичный ключ контент

id_rsa.в пабе

как мой ключ репозитория SSH gitlab, поэтому после ты:

ssh-keygen -t rsa -C "your@email.com" -b 4096

пожалуйста, помните о .паб расширение файла для копирования из:

  • OSX:

pbcopy в пабе

  • Linux:

xclip-SEL clip в пабе

  • Windows PowerShell

кошки ~/.ssh / id_rsa.в пабе | клип


затем вставьте его в свой GitLab / github или другой репозиторий в качестве ключа SSH

это имеет смысл, потому что вы всегда должны делиться только своим открытым ключом, а не частным:)