Github ssh key is invalid

Invalid private key while using SSH #88


BabetteW commented Mar 12, 2019

I configured SSH authentication for github via the preference menu as described on the Wiki.However when I try to import a remote model I get an error that the private key is invalid.

If I clone the model via the command line it works just fine. So the public private key combination is correct.

There is no error in the logfile (accessable via about archi menu) that provides more detail. Is there a way I can get more details on the error so that I can correct the issue or provide you with a more detailed error description.

The text was updated successfully, but these errors were encountered:

Phillipus commented Mar 12, 2019

If you are using SSH from the command line and it works, it should also work in the UI. Can you double check your settings?

Phillipus commented Mar 12, 2019

Are you seeing an error dialog like:

There was an error: invalid privatekey: []

I could get that error if I set my key file to rather than id_rsa

avina-z commented Mar 20, 2019 •

I having the same error as well. I am using the plugin on a Mac with OS Mojave 10.14.3.
I can use my key and passphrase on other applications that connect to the repositories, but the plugin keeps telling me «invalid privatekey»

Phillipus commented Mar 20, 2019 •

I have to say that I’m not an SSH expert here and this is quite a new feature so would appreciate help from others.

From my limited experience, things to check are that it is actually the id_rsa file that is set in preferences and that this file is in the PEM format as per the wiki —

Phillipus commented Mar 20, 2019

@potto007 Could you help out with this issue?

Ridderby commented Mar 21, 2019 •

I had the same issue. To explore the problem I went to properties to verify the key-file path and tried to select a new keyfile with the exact same path and then it worked like a charm. Possibly there is a problem with the default-value is not forwarded correctly or something. Visually it seems right but clearly is not.

Well, this worked as a workaround for me.

Phillipus commented Mar 21, 2019 •

I tried this with a new setup on a Mac.

    I copied over my existing and id_rsa files that I had created on my Windows machine into


  • In Archi’s Prefs set my Identity password for the key file id_rsa
  • @Ridderby can you reproduce this more than once?

    If there is a problem finding the id_rsa file there would be a different message. Because it says «invalid private key» there must be something else going on.

    Phillipus commented Mar 21, 2019

    We need more details to find the common factor here.

    Operating System — Mac, Windows?

    Double check path to key file is correct, and not referencing the public key file.

    avina-z commented Mar 21, 2019

    After several tests I manage connect to my repository. I was using a key file named id_rsa_archi since I did not want to disturb my original id_rsa file. Despite of given the full path and filename in the Identity file parameter, it was nor working. After I renamed my new key file to id_rsa, the plugin was able to connect.

    Phillipus commented Mar 21, 2019

    @avina-z I checked this and it seems to be working OK.

    Can you rename it back to id_rsa_archi and set the Preference again, making sure you press «Apply and Close» in the dialog. And double check that the preference has remembered the new file path.

    Phillipus commented Mar 21, 2019 •

    Are people using different repository providers with different SSH key files? It’s possible to create one key file for GitHub and one for BitBucket. Perhaps this is the cause?

    jakros commented Apr 19, 2019

    Hi all, I experienced exactly same problem and after digging for I while, I found both the cause and solution.
    Cause: new openssh libs used to generate keys by default save private keys in a different file format that jgit package used in Archi can’t handle. New file format starts with «——BEGIN OPENSSH PRIVATE KEY——«, while the old one has a different header «——BEGIN RSA PRIVATE KEY——»
    Solution: (copy) convert your private key file
    ssh-keygen -p -f file -m pem -P passphrase -N passphrase
    (if the key is not encrypted with a passphrase, use «» instead of passphrase)
    more on that:

    Читайте также:  Лазерный принтер кэнон печатает полосами

    Phillipus commented Apr 19, 2019

    The PEM format is required, certainly.

    From the comment above:

    . things to check are that it is actually the id_rsa file that is set in preferences and that this file is in the PEM format as per the wiki —

    120technology commented Feb 25, 2020

    I’ve had the same problem as others here when using a PEM key.

    I found today that on Mac and Linux, I can name the key whatever I want. But from Windows the keypair only works if, like @avina-z found, I name my keypair as id_rsa. Other name (id_rsa2, id_rsa_pem, pemkey) did not work.

    Hope that helps somehow.

    WoozyMasta commented May 26, 2020

    What about id_ed25519? It does not work, but it is an internal standard and there is no possibility to use RSA.

    © 2022 GitHub, Inc.

    You can’t perform that action at this time.

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.


    Проблема с добавлением SSH-ключа в GitHub

    у меня есть проблема, которая кажется о формате SSH-ключа, используемого GitHub. Я использовал Git Bash для создания нового SSH-ключа

    затем я скопировал ключ в раздел SSH в настройках моей страницы учетной записи GitHub. Тем не менее, он пришел с уведомлением о проблеме следующим образом

    после этого я отредактировал свой SSH-ключ, начиная с ssh-rsa и моего адреса электронной почты в конце. Тем не менее, вопрос до сих пор нет.

    может ли кто-нибудь рассказать о решении это?

    6 ответов

    просто выполните эти шаги, и вы настроите свой ssh-ключ в кратчайшие сроки:

    создать новый ключ SSH (или пропустите этот шаг, если у вас уже есть ключ)
    ssh-keygen -t rsa -C «your@email»

    после того, как у вас есть ключ в

    ssh-keygen будет генерировать вам пару ключей, один частный и один открытый. Похоже, вы загрузили не ту. GitHub хочет открытый ключ, как правило, здесь:

    Если вы используете mac и ввод инструкции github (например,создание нового ключа SSH и добавление его в ssh-agent, вы, вероятно, печатаете и только нашив (авто-завершение) в:

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

    надеюсь, что это сэкономит вам время.

    /.ssh/ , затем откройте его с помощью редактора и скопируйте открытый ключ в свой github

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

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


    Provide more meaningful error message when adding SSH keys fails #3985


    wcarson commented May 17, 2018

    • Gitea version (or commit ref): 1.4.1
    • Git version: 2.16.2
    • Operating system: Windows Server 2016
    • Database (use [x] ):
      • PostgreSQL
      • MySQL
      • MSSQL
      • SQLite
    • Can you reproduce the bug at
      • Yes (provide example URL)
      • No
      • Not relevant
    • Log gist:


    When trying to add a SSH key to a user profile, any type of failure with the ssh-keygen command returns a generic HTTP 500 error to the UI (screenshot attached). In the log you can see what the actual error was, but none of this info is conveyed to the end user.

    Reason: Path to ssh-keygen not configured correctly
    2018/05/16 17:00:23 [. ters/user/setting.go:430 SettingsKeysPost()] [E] AddPublicKey: ‘ssh-keygen -lf C:\Windows\TEMP\gitea_keytest659272622’ failed with error ‘exec: «ssh-keygen»: executable file not found in %PATH%’:

    Reason: SSH key is not a valid public key — OR — the key is password protected
    2018/05/16 17:04:14 [. ters/user/setting.go:430 SettingsKeysPost()] [E] AddPublicKey: ‘ssh-keygen -lf C:\Windows\TEMP\gitea_keytest763165203’ failed with error ‘exec(4:AddPublicKey) failed: exit status 255( ) stdout: stderr: C:\\Windows\\TEMP\\gitea_keytest763165203 is not a public key file. ‘: C:\\Windows\\TEMP\\gitea_keytest763165203 is not a public key file.

    It would be helpful to have a better error message returned to the user instead of a generic HTTP 500 error (e.g. «Invalid public key or key is password protected», «Path to ssh-keygen is invalid. Contact administrator», etc.)


    The text was updated successfully, but these errors were encountered:


    [Solved] SSH-Connection / Load key — invalid format #671


    torstenzenk commented Jul 14, 2020 •

    Describe the bug
    Under «Edit Connection > Connection > Connection Details > Private Key >Private Key file» i select a name.ppk file that works perfectly in putty on Debian.
    The output in Asbru-cm is:
    Load key «/home/myusername/files/name.ppk»: invalid format :

    Renaming the file to just name throws the same message:
    Load key «/home/myusername/files/name»: invalid format

    ls -la in that folder:
    drwxr-xr-x 2 myusername.myusername 4096 Jul 14 21:51 .
    drwxr-xr-x 30 myusername.myusername 4096 Jul 14 13:40 ..
    -rwx—— 1 myusername.myusername 1482 Jul 14 21:51 name
    -rwx—— 1 myusername.myusername 1482 Okt 27 2018 name.ppk

    To Reproduce
    Steps to reproduce the behavior:
    0. Make SSH Connection

    1. Go to ‘..Edit Connection > Connection > Connection Details > Private Key >Private Key file.’
    2. Add a keyfile > Click on ‘Save and Close.’
    3. Choose that connection and connect
    4. See error

    Expected behavior
    Smooth login as in putty:

    If applicable, add screenshots to help explain your problem.

    Environment (please complete the following information):

    Client OS: Debian GNU/Linux 10 (buster)

    Ásbrú Version
    Ásbrú Connection Manager 6.2.1 (asbru-cm) started with PID 13275
    INFO: Desktop environment detected : xfce
    INFO: Config directory is ‘/home/myusername/.config/asbru’
    INFO: Used config file ‘/home/myusername/.config/asbru/asbru.nfreeze’
    INFO: Virtual terminal emulator (VTE) version is 0.54
    INFO: Theme directory is ‘/opt/asbru/res/themes/default’

    Additional context
    this happens on all my external servers where i can ssh to with putty without any problem.
    I have to say the the ssh-servers only accept auth with publickey. Anything else is permitted.

    The text was updated successfully, but these errors were encountered:


    Сообщение «Ключ недействителен» на GitHub

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

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

    Кто-нибудь знает, что может происходить?

    задан 07 мая ’12, 04:05

    Чтобы быть уверенным, вы включили ssh-rsa это идет перед самим ключом, да? — David Cain

    По крайней мере, в CentOS 7.x, если вы сгенерируете свой ключ SSH, используя только ssh-keygen тогда формат не будет работать. я получил это сообщение Key is not in OpenSSH format . Я исправил это с помощью ssh-keygen -t rsa -b 4096 , затем скопируйте этот ключ на Github cat

    25 ответы

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

    Из MAC:

    Скопируйте точно с конца (с последней буквой расширения вашего домена электронной почты) блока символов в начало, которое начинается с сш-рс.

    Если это не работает, вы наверняка неправильно копируете.

    Если вы находитесь на Windows, используйте блокнот и копипаст, как описано выше.

    Надеюсь, это помогло.

    ответ дан 02 дек ’19, 06:12

    По очень неясной причине копирование-вставка из emacs удалила \n после ssh-rsa, и это вызывало проблему. Копипаст из vi решил проблему. Поскольку вы дали мне идею попробовать это, я присуждаю вам ответ! — user2398029

    ви у меня не работал. Мне пришлось использовать команду cat (OSX), чтобы распечатать ее на терминале и скопировать ее вывод. Спасибо, что поставили меня на правильный путь. — Иеремия

    копирование из vim сработало для меня, но копирование результата имени файла cat не помогло — БрэдТ

    По какой-то причине мой vim не смог обернуть ключ. Скопировано из возвышенного, чтобы получить весь ключ. Работал. — Джон Крамерус

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

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

    • В первой строке введите ssh-rsa.
    • Убедитесь, что вы добавили один пробел после ssh-rsa
    • Когда вы копируете/вставляете ключ в текстовое поле «Ключ», он должен сохранять символы \n (x0A). Если вы используете Блокнот в Windows, вы не увидите эти новые строки, пока не скопируете текст на Github.

    Обратите внимание, что на этом снимке экрана после ssh-rsa есть пробел (см. курсор). Текст открытого ключа также включает три символа \n, поэтому вы можете увидеть, как текст открытого ключа трижды переходит на следующую строку в текстовом поле.

    В моем файле отсутствовала часть «ssh-rsa». Добавление его вручную на Github помогло. — Фургас

    В связи с этим в GitLab (проверено 7.4.3) ключи SSH можно добавлять только при (как было предложено выше) добавлении ssh-rsa и не включая символы новой строки. — джднайт

    Это должно быть конкретной проблемой замазки; У меня была такая же ошибка с замазкой — Джейпо

    @JamesLawruk Кстати, GitHub (и, я думаю, любая программа, использующая ssh) игнорирует все символы новой строки в ключевом файле. (Вот почему ты разрешено разбить его на 3 строки — в довольно произвольных точках.) — Джейпо

    добавление «ssh-rsa» с одним пробелом после этого помогло мне. большое спасибо. — Алесь

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

    то ниже не составляет труда:

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

    вместо Открытый ключ содержание

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

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

    pbcopy ssh-keygen -t rsa -b 4096 помогло, очевидно, вы можете пропустить -C — Дио Фунг

    я тебя люблю. Я пытался получить это в течение нескольких часов, и этот ответ был единственным, который мне помог 🙂 — user13124814

    Я пробовал несколько способов, но ни один из них не помогает (у меня ОС Ubuntu). Затем я подумал, могу ли я распечатать содержимое

    /.ssh/ с помощью команды «больше».

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

    Вот URL-адрес, по которому вы можете увидеть изображение:

    Я скопировал содержимое из командной строки, и это РАБОТАЛО.

    Разместите URL-адрес изображения, некоторые пользователи могут добавить его в тело для вас. — DontVoteMeDown

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

    @DontVoteMeDown Я поделился ссылкой. Просто скопируйте содержимое и все заработает! — Sparks_Fly

    @Hamad Я поделился URL-адресом. — Sparks_Fly

    Спасибо, это действительно сработало. у каждого свои теории. Вещи не должны быть такими «волшебными», когда речь идет о чем-то вроде SSH-ключей. Что за крушение поезда с добавлением SSH-ключей на github. — Самаурса

    Кто-то предложил использовать $ vi

    /.ssh/ однако это не сработало для меня.

    Поэтому вместо этого я использовал $ cat

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

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

    Игровой автомат ОП луизм подтверждает проблема с копированием:

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

    ответ дан 23 мая ’17, 12:05

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

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

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

    sudo apt-get install xclip

    2. Скопируйте с помощью xclip

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

    ПРИМЕЧАНИЕ. Между ssh-rsa и ключом есть пробел.

    Создан 25 июля ’17, 08:07

    Просто для тех, кто смотрит в будущее, еще одна распространенная проблема — перенос слов. Например, если вы запустите cat

    /.ssh/ он может переносить строки, тем самым добавляя дополнительные \ символов на каждом разрыве строки. Удалите их, и ваш ключ должен работать нормально.

    ответ дан 10 мар ’14, в 16:03

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

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

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

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

    ответ дан 26 окт ’17, 18:10

    У меня это сработало: Putty SSH из Windows в Linux, открыть файл ключа с помощью vi, затем скопировать из шпатлевки, выбрав на экране и вставив его. Странный кот не работал. — Александру Трандафир Каталин

    Использовал puttygen, который дал мне полную строку, а не какой-то паб-файл, который у меня валялся. — Писис

    Это обычная проблема, с которой мы сталкиваемся при создании ключа. При генерации SSH мы получим два файла различий: id_rsa и здесь файл с расширением pub является файлом держателя открытого ключа. Вы должны скопировать содержимое из этого файла и добавить на Github.

    ПРИМЕЧАНИЯ: 1. Содержимое файла открытого ключа начинается с «SSH-RSA». 2. Заканчивается вашим идентификатором электронной почты Github. пример: если вы зарегистрировали Github с помощью, то файл pub имеет указанный идентификатор электронной почты в конце

    ответ дан 12 окт ’19, 06:10

    Мой ноутбук работает на macOS Big Sur версии 11.3.1 и ssh-keygen -t rsa сгенерировал очень длинный ключ с в начале. ssh-keygen -t rsa -b 4096 работал; он создал ключ с алгоритмом ssh-rsa.

    ответ дан 29 мая ’21, 01:05

    Если вы используете замазку (puttygen), скопируйте это.

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

    Если он на месте, откройте его возвышенным текстом

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

    ответ дан 10 авг.

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

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

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

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

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

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

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

    ответ дан 01 окт ’17, 03:10

    Если вы используете bash для окон в качестве терминала и копируете с помощью Shift + Highlighting + Ctrl-C, то это решение может вам подойти:

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

    1. Теперь перейдите в «Правка»> «Выбрать все» или Ctrl-A.

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

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