Повідомлення "Ключ недійсний" на GitHub


79

Я створив ключі SSH для встановлення нового сервера відповідно до процедури, описаної тут . Однак, коли я копіюю вміст id_rsa.pubдо свого списку ключів на GitHub, я отримую повідомлення про помилку "Ключ недійсний. Переконайтеся, що файл скопійовано правильно."

Створений ключ є дійсним, і я копіюю його точно таким, як є (все в одному рядку, без пробілів на початку / в кінці).

Хто-небудь має уявлення, що може бути?


1
Щоб бути впевненим, ви включили те, ssh-rsaщо стоїть перед самим ключем, так?
Девід Кейн,

Відповіді:


133

Я прийшов сюди, бо в мене була та сама проблема. З Вашого питання, я зрозумів , що я копіював вміст з неправильного файлу, без в .pubрозширення (це був мій особистий ключ, тобто id_rsaфайл, який повинен бути конфіденційними в усі часи!)

З MAC:

vi ~/.ssh/id_rsa.pub

Скопіюйте точно з кінця (з останньою літерою вашого розширення домену електронної пошти) блоку символів до початку, який починається з ssh-rs ...

Якщо це не працює, ви, безумовно, неправильно копіюєте.

Це спрацювало.

Якщо ви використовуєте Windows , використовуйте блокнот та скопіюйте, як описано вище.

Сподіваюся, це допомогло.


13
З дуже неясної причини копіювання з emacs видалило \ n після ssh-rsa, і це спричинило проблему. Копіювання-вставлення з vi вирішило проблему. Оскільки ти дав мені ідею спробувати це, я нагороджу тобою відповідь!
user2398029

2
vi не працював у мене. Мені довелося скористатися командою cat (OSX), щоб надрукувати її на терміналі та скопіювати її вихідні дані. Дякую, що поставили мене на правильний шлях.
Єремія

копіювання з vim у мене спрацювало, але копіювання результату імені файлу cat не зробило
BradT

З будь-якої причини, мій vim не зміг обернути ключ. Скопійовано з піднесеного, щоб отримати цілий ключ. Працювали.
Джон Крамерус,

viзробив трюк, я використав nano, який файл скорочується $символом
Jacky

59

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

  • У першому рядку введіть ssh-rsa.
  • Обов’язково додайте один пробіл після ssh-rsa
  • Коли ви копіюєте / вставляєте ключ у текстове поле Ключ, він повинен зберігати символи \ n (x0A). Якщо ви використовуєте Блокнот у Windows, ви не побачите цих нових рядків, поки не скопіюєте текст у Github.

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


6
У моєму файлі id_rsa.pub відсутня частина "ssh-rsa". Додавання його вручну на Github зробило трюк.
Фургас

7
Відповідно до примітки, в GitLab (перевірено 7.4.3), ключі SSH можна додавати лише тоді, коли (як пропонувалось вище) додавання ssh-rsaта не включаючи символи нового рядка.
jdknight

2
Це має бути специфічне питання шпаклівки; У мене була та ж помилка із шпаклівкою
jpaugh

1
@JamesLawruk BTW, GitHub (і, я вважаю, будь-яка програма, що використовує ssh) ігнорує всі символи нового рядка у файлі ключа. (Ось чому вам дозволено розділити його на 3 рядки --- у досить довільних точках.)
jpaugh

2
додавання "ssh-rsa" з одним пробілом після цього мені допомогло. дуже дякую.
Алесь

17

Я пробую кілька способів, але жоден з них не допомагає (мій ОС - ubuntu). Тоді я подумав, чи можу я надрукувати вміст ~ / .ssh / id_rsa.pub за допомогою команди "more".

Вибачте, ніж у мене немає репутації для розміщення зображень! коли у мене буде, я опублікую це!

Ось URL, де ви можете побачити зображення:

введіть тут опис зображення

Я скопіював вміст із командного рядка, і він РОБОТАЛ !!!


1
Опублікуйте URL-адресу зображення, деякі користувачі можуть додати його до тіла для вас.
DontVoteMeDown

завантажуйте зображення на якийсь сайт і діліться посиланнями. щоб вирішити питання
Хамад

@DontVoteMeDown Я поділився URL-адресою. Просто скопіюйте вміст, і він буде працювати!
Sparks_Fly

1
@Hamad Я поділився URL-адресою.
Sparks_Fly

Дякую, це справді спрацювало ... у кожного свої теорії. Речі не повинні бути такими «чарівними», коли мова йде про щось на зразок SSH-ключів. Яка аварія поїзда, що додає ключі SSH, є на github.
Самаурса

12

Я знаю, що цьому питанню зараз є cpl років, але якщо хтось у 2018 році зіткнеться з цим:

то нижче - нічого не зрозумілого:

моя проблема полягала в тому, що я спробував скопіювати закритий ключ

id_rsa

замість відкритого ключа змісту

id_rsa. паб

як мій ключ сховища SSH gitlab, тому після вас:

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

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

  • OSX :

  pbcopy <~ / .ssh / id_rsa. паб

  • Linux :

  xclip -sel кліп <~ / .ssh / id_rsa. паб

  • Windows PowerShell

  кішка ~ / .ssh / id_rsa. паб | кліп


потім вставте його у свій gitlab / github або інше сховище як ваш SSH-ключ

це цілком логічно, адже ви завжди повинні ділитися лише своїм відкритим ключем, а не приватним :)


4

Хтось запропонував використовувати, $ vi ~/.ssh/id_rsa.pubоднак це не спрацювало для мене.

Тому замість цього я використав $ cat ~/.ssh/id_rsa.pubкоманду на машині Windows, щоб роздрукувати на терміналі, а потім скопіювати її.


3

Рекомендується по GitHub

Копіювання SSH-KEY:

Я працював із xclipкопіюванням id_rsa.pubключа, приблизно так:

1. Встановити xclip

sudo apt-get install xclip

2. Скопіюйте за допомогою xclip

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


Щасти.


3

У вікнах,

Просто скопіюйте дані відкритого ключа з файлу ключа та видаліть нові рядки. Напишіть це нижче у діалоговому вікні, щоб вирішити вашу проблему. ssh-rsa Ключ

ПРИМІТКА. Між ssh-rsa та клавішею є простір

І ви закінчили.


2

Тільки для тих, хто дивиться в майбутнє, ще одним загальним питанням є обгортання слів. Наприклад, якщо ви запустите, cat ~/.ssh/id_rsa.pubце може обернути рядки, додаючи таким чином зайві \символи на кожному розриві рядка. Видаліть їх, і ваш ключ повинен працювати нормально.


2

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

ключ ssh

OP louism підтверджує проблему з копіювання і вставки:

  • З дуже незрозумілої причини копіювання з emacs видалило \nпісля ssh-rsa , і це спричинило проблему.
  • Копіювання-вставлення з vi вирішило проблему .

2

У мене була та сама проблема, незважаючи на копіювання відкритого ключа з 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.


Мені це вдалося: зашпаклюйте SSH із Windows на Linux, відкрийте файл ключа за допомогою vi, а потім скопіюйте із шпаклівки, вибравши на екрані та вставивши його. Дивна кішка не спрацювала.
Александру Трандафір Каталін,

Використовував puttygen, який дав мені повний рядок, а не якийсь пабний файл, який я лежав.
Pysis

0

Якщо ви використовуєте Sublime, ви можете правильно бачити ssh-клавішу. Перевірте, чи немає id_rsa.pub

ls -al ~/.ssh

Якщо воно на місці, відкрийте його піднесеним текстом

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

Потім скопіюйте та вставте свій відкритий ключ ssh.


0

У моєму випадку мені довелося додати додаткове правило білого кольору після мого повідомлення електронної пошти (після цілого рядка ключів), перш ніж воно було прийняте. Я дізнався про це випадково, після спроби скопіювати мій ключ ssh, введений на Gitlab.

pbcopy з мого ключа пабу прямо з командного рядка не працював. Копія з gitlab з додатковим білим правилом наприкінці зробила трюк.


0

Я просто мав це питання. Супер розчарування. Я припустив, що моя ситуація могла вплинути на причину проблеми. Я використовую планшет, намагаючись налаштувати ключ на сайті githubs через браузер свого планшета (Chrome), і копіюю ключ із програми ssh, підключеної до віддаленого сервера Linux.

У підсумку сталося те, що якось, коли я скопіював ключ до браузера, він ввів ряд розривів рядків. Мало того, але він також видалив символ із кожної точки, куди було вставлено новий рядок.

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

До речі, я сам не додавав жодних нових розривів рядків, таких як той, що згаданий іншими після ssh-rsa.

Сподіваємось, це допомагає іншим. Я не уявляю, чому це сталося. Дурно, що копіювання в буфер обміну змінить текст, який скопіювали. О, я також скопіював його прямо з Vim.


0

Якщо ви використовуєте bash для Windows як термінал і копіюєте за допомогою shift + підсвічування + ctrl-c, тоді це рішення може вам підійти:

  1. Після копіювання ключа та вставки його в блокнот:

приклад ключа ssh -

  1. Тепер перейдіть до Редагувати> Виділити все або Ctrl-A

виділений текст

  1. Велика кількість блакитних областей - це пробіли. Вам потрібно видалити їх за допомогою зворотного простору або клавіші видалення. Залиште пробіл у зелених колах.

введіть тут опис зображення

  1. Тепер ви зможете скопіювати та вставити цю відредаговану версію у github.

введіть тут опис зображення


0

Це загальна проблема, з якою ми стикаємось під час генерування ключа. Поки генерується SSH, ми отримаємо два файли різниці, один - id_rsa та id_rsa.pub. тут файл із розширенням pub - це файл власника відкритого ключа. Ви повинні скопіювати вміст із цього файлу та додати до Github.

ПРИМІТКИ: 1. вміст файлу з відкритим ключем починається з „SSH-RSA“ 2. закінчується вашим ідентифікатором електронної пошти Github. приклад: якщо ви зареєстрували Github у @ gmail.com, тоді файл публікації має вказаний ідентифікатор електронної пошти востаннє



0

Щоб скопіювати весь вміст id_rsa.pub в буфер обміну:

Виконати> pbcopy ~/.ssh/id_rsa.pub


0

Я намагався завантажити свій відкритий ключ і отримував повідомлення "Недійсний ключ". Мій формат був неправильним, оскільки в кінці ключа були зайві пробіли. Він повинен бути у форматі:ssh-rsa <public-key>

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.