Сообщение "Key is invalid" на GitHub
Я создал SSH-ключи для новой установки сервера в соответствии с процедурой, описанной здесь здесь. Однако, когда я копирую содержимое id_rsa.pub
в список моих ключей в GitHub, я получаю сообщение об ошибке "Недопустимый ключ. Убедитесь, что вы скопировали файл правильно".
Сгенерированный ключ действителен, и я копирую его точно как есть (все в одной строке без пробелов в начале/конце).
У кого-нибудь есть идея, что может происходить?
Ответы
Ответ 1
Я пришел сюда, потому что у меня была такая же проблема. Из вашего вопроса я понял, что копирую содержимое из неправильного файла (только файл id_rsa
без расширения .pub
).
Из MAC:
vi ~/.ssh/id_rsa.pub
Скопировать точно с конца (с последней буквой вашего расширения домена электронной почты) блока символов до начала, начинающегося с ssh-rs...
Если это не сработает, вы наверняка не будете правильно копировать.
Это сработало.
Если вы находитесь в Windows, используйте блокнот и копию-вставку, как описано выше.
Я надеюсь, что это помогло.
Ответ 2
Вот несколько шагов, которые не совсем понятны при копировании/вставке открытого ключа. (Для записи я использовал Putty Key Generator для своих ключей.)
- В первой строке введите ssh-rsa.
- Убедитесь, что вы добавили одно место после ssh-rsa
- Когда вы копируете/вставляете ключ в текстовое поле Key, он должен сохранять символы \n (x0A). Если вы используете Notepad в Windows, вы не увидите эти новые строки, пока не скопируете текст в Github.
Обратите внимание, что на этом скриншоте есть пробел после ssh-rsa (см. курсор.) Текст открытого ключа также включает в себя три символа \n, поэтому вы можете видеть, что текст открытого ключа отображается до следующей строки три раза в текстовое поле. ![SSH RSA Key]()
Ответ 3
Я пытаюсь несколько способов, но ни один из них не помогает (мой os - ubuntu). Тогда я подумал, могу ли я распечатать содержимое ~/.ssh/id_rsa.pub с помощью команды "больше".
Мне жаль, что у меня нет репутации для публикации изображений! когда у меня есть, я опубликую его!
Вот URL, где вы можете увидеть изображение:
![enter image description here]()
Я скопировал содержимое из командной строки, и он РАБОТАЛ!!!
Ответ 4
В окнах
Просто скопируйте голые данные ключа из файла ключей и удалите новые строки.
Напишите это ниже в диалоговом окне, чтобы решить вашу проблему.
ssh-rsa Key
ПРИМЕЧАНИЕ. Между ssh-rsa и ключом есть пробел
И все готово.
Ответ 5
Если вы действительно скопировали содержимое своего ключа id_rsa.pub
(в одной непрерывной строке), результат должен выглядеть (из GitHub ssh help страница):
![ssh key]()
OP louism подтверждает проблему с копией:
- По очень неясной причине копирование в emacs удалило
\n
после ssh-rsa, и это вызывало проблему. - Скопированное вставка из vi решила проблему.
Ответ 6
Просто для тех, кто смотрит в будущее, еще одна распространенная проблема - это перенос слов. Например, если вы запустите cat ~/.ssh/id_rsa.pub
, он может обернуть строки, добавив дополнительные символы \
при каждом разрыве строки. Удалите их, и ваш ключ должен работать нормально.
Ответ 7
Рекомендуется GitHub
Копирование SSH-KEY
:
Я работал с xclip
, чтобы скопировать ключ id_rsa.pub
, например:
1. Установите xclip
sudo apt-get install xclip
2. Копировать с помощью xclip
xclip -sel clip < ~/.ssh/id_rsa.pub
Удачи.
Ответ 8
Я знаю, что это вопрос, которому сейчас годен капрал, но если кто-то в 2018 году столкнется с этим: ![]()
тогда ниже легкая задача:
моя проблема заключалась в том, что я пытался скопировать закрытый ключ
id_rsa
вместо открытого ключа содержимого
id_rsa.pub
как мой ключ хранилища SSH gitlab, так что после вас:
ssh-keygen -t rsa -C "[email protected]" -b 4096
пожалуйста, помните о расширении файла .pub, с которого нужно копировать:
& emsp; & emsp; pbcopy & lt; ~/.Ssh/id_runmyprocess_rsa.паб
& emsp; & xmsip -sel clip & lt; ~/.Ssh/id_rsa.паб
& emsp; & emsp; cat ~/.ssh/id_rsa.pub | клип
затем вставьте его в свой gitlab/github или другой репозиторий в качестве своего SSH-ключа
это имеет смысл, потому что вы всегда должны делиться только своим открытым ключом, а не личным :)
Ответ 9
У меня была такая же проблема, несмотря на копирование открытого ключа из 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
Я подозреваю, что эмулятор терминала может иметь какое-то отношение к нему, поскольку у меня не было этой проблемы с Terminal.app.
Ответ 10
Если вы используете Sublime, вы можете правильно увидеть ssh-key.
Проверьте, нет ли id_rsa.pub
ls -al ~/.ssh
Если он на месте, откройте его с возвышенным текстом
sudo subl /home/user_name/.ssh/id_rsa.pub
Затем скопируйте и вставьте общедоступный ключ ssh.
Ответ 11
В моем случае мне пришлось добавить лишнее белое правило после моего сообщения электронной почты (после всей строки) до того, как оно будет принято. Я обнаружил это случайно, пытаясь скопировать мой ssh-ключ, введенный в Gitlab.
pbcopy из моего паб-ключа прямо из командной строки не работает. Копия из gitlab с дополнительным белым правилом в конце, сделала трюк.
Ответ 12
У меня была эта проблема. Супер разочарование. Я решил, что моя ситуация может повлиять на проблему проблемы. Я использую планшет, пытаясь настроить ключ на сайте githubs через браузер планшета (Chrome), и я копирую ключ из приложения ssh, подключенного к удаленному серверу linux.
Что случилось, так это то, что когда я скопировал ключ в браузер, он ввел ряд разрывов строк. Не только это, но и удалил символ из каждой точки, где была вставлена новая строка.
Итак, чтобы заставить его работать, мне пришлось вручную найти каждый новый разрыв строки, а затем охотиться за этой частью ключа, чтобы найти отсутствующий символ. Затем я добавил персонажа и удалил новую строку. После того, как я преследовал все изменения, ключ работал нормально.
Кстати, я не добавлял никаких новых разрывов строк, таких как тот, который упоминался другими после ssh-rsa.
Надеюсь, это поможет другим. Я понятия не имею, почему это произошло. Глупо, что копирование в буфер обмена изменит текст, скопированный. О, я тоже скопировал это прямо из Вима.
Ответ 13
Если вы используете bash для windows в качестве терминала и копируете с помощью shift + подсветка + ctrl-c, то это решение может работать для вас:
- После копирования ключа и вставки его в блокнот:
![example ssh key]()
- Теперь перейдите в Edit> Select All или Ctrl-A
![text highlighted]()
- Большое количество синих областей - это пробел. Вы должны удалить их либо с помощью клавиши Backspace, либо с помощью клавиши удаления. Оставьте пробел в зеленых кружках.
![enter image description here]()
- Теперь вы сможете скопировать и вставить эту отредактированную версию в github.
![enter image description here]()
Ответ 14
Это общая проблема, с которой мы сталкиваемся при создании ключа. Во время генерации SSH мы получим два файла различий, один из которых - id_rsa и id_rsa.pub. здесь файл с расширением pub является файлом держателя открытого ключа. Вы должны скопировать содержимое этого файла и добавить его на Github.
ПРИМЕЧАНИЯ:
1. содержимое файла открытого ключа начинается с 'SSH-RSA'
2. в конце укажите свой электронный адрес Github. Например: если вы зарегистрировали Github на @gmail.com, тогда в файле pub указан указанный адрес электронной почты.