Windows ssh ppk invalid format

Как поменять местоположение на телефоне Андроид Honor 8A: пошаговая инструкция

На чтение4 мин

Опубликовано

Обновлено

Когда вы работаете с удаленными серверами через SSH с помощью Windows, часто используется файл ppk (PuTTY Private Key), который содержит приватный ключ для аутентификации. Однако иногда возникает проблема с загрузкой или использованием этого файла, и вы получаете сообщение об ошибке «Windows ssh ppk invalid format». В этой статье мы рассмотрим, как решить эту проблему.

Первым шагом при решении этой проблемы является проверка формата файла ppk. Он должен быть в правильном формате и не должен быть поврежден. Если файл поврежден или в неправильном формате, вы получите ошибку «Windows ssh ppk invalid format». Чтобы убедиться, что файл в правильном формате, вы можете открыть его в текстовом редакторе и проверить его содержимое.

Например, файл должен начинаться со строки «PuTTY-User-Key-File-2: ssh-rsa», а затем содержать кодированный приватный ключ.

Если файл ppk поврежден или в неправильном формате, вы можете попробовать создать новый файл ppk с помощью инструмента PuTTYgen. Просто откройте PuTTYgen, выберите опцию «Load» и выберите файл с расширением .pem или .ppk, и сохраните его в формате ppk. После этого попробуйте использовать новый файл ppk для аутентификации через SSH.

Если эти шаги не решили проблему «Windows ssh ppk invalid format», возможно, проблема связана с настройками аутентификации на сервере. Убедитесь, что вы используете правильные учетные данные и настройки аутентификации на удаленном сервере. Если у вас есть доступ к серверу через другой метод аутентификации (например, пароль), попробуйте использовать его, чтобы проверить, работает ли SSH вообще.

Что делать если возникает ошибка «Windows ssh ppk invalid format»

Ошибка «Windows ssh ppk invalid format» может возникнуть при попытке использовать неправильный формат ключа PPK при подключении к удаленному серверу через SSH.

Для решения этой проблемы вам потребуется проверить ключ PPK на наличие ошибок и, если необходимо, сконвертировать его в правильный формат.

Вот несколько шагов, которые вы можете предпринять, чтобы исправить ошибку «Windows ssh ppk invalid format»:

  1. Убедитесь, что вы используете правильный ключ PPK. Проверьте имя файла и его местоположение.
  2. Если у вас есть доступ к исходному ключу, создайте новый PPK-файл с помощью утилиты PuTTYgen:
    1. Запустите PuTTYgen.
    2. Нажмите кнопку «Load» и выберите исходный ключ.
    3. Нажмите «Save private key» и сохраните новый PPK-файл с другим именем.
    4. Попробуйте использовать новый PPK-файл для подключения к удаленному серверу.
  3. Если у вас нет доступа к исходному ключу или приватному ключу, возможно, вам придется сгенерировать новую пару ключей:
    1. Запустите PuTTYgen.
    2. Нажмите кнопку «Generate», чтобы сгенерировать новую пару ключей.
    3. Нажмите «Save private key» и сохраните новый PPK-файл с именем по вашему выбору.
    4. Попробуйте использовать новый PPK-файл для подключения к удаленному серверу.

Если все эти шаги не помогли решить проблему, возможно, проблема не связана с ключом PPK. В этом случае стоит обратиться к документации или службе поддержки соответствующего программного обеспечения.

Надеемся, эти советы помогут вам исправить ошибку «Windows ssh ppk invalid format» и успешно подключиться к удаленному серверу через SSH.

Причины появления ошибки «Windows ssh ppk invalid format»

Ошибка «Windows ssh ppk invalid format» может возникнуть из-за нескольких причин:

1. Неправильный формат файла:

SSH ключ в файле .ppk должен соответствовать определенному формату, который требуется для работы с программами на Windows. Если файл .ppk был создан с использованием других инструментов или содержит ошибки формата, возникнет данная ошибка.

2. Использование устаревшей версии программы:

Если используется устаревшая версия программы, которая не поддерживает новые форматы ключей или имеет ошибки, связанные с обработкой файлов .ppk, возможно появление ошибки «Windows ssh ppk invalid format». Рекомендуется обновить программу до последней версии или попробовать использовать другую программу для работы с SSH ключами.

3. Файл .ppk поврежден или испорчен:

Если файл .ppk был поврежден или испорчен, это может привести к появлению ошибки «Windows ssh ppk invalid format». Попробуйте создать новый SSH ключ и убедиться, что файл .ppk не поврежден или испорчен.

Чтобы избежать ошибки «Windows ssh ppk invalid format», рекомендуется использовать инструменты и программы, поддерживающие правильный формат файла .ppk. Также следует следить за обновлениями программного обеспечения и регулярно резервировать ключи, чтобы в случае проблем можно было использовать резервные копии.

Как исправить ошибку «Windows ssh ppk invalid format»

Если вы столкнулись с ошибкой «Windows ssh ppk invalid format» при попытке использовать SSH-ключ в формате PPK на Windows, есть несколько способов ее решить.

1. Используйте PuTTYgen

Для исправления этой ошибки вы можете воспользоваться программой PuTTYgen, которая входит в комплект утилит PuTTY. Чтобы это сделать, следуйте этим шагам:

  1. Запустите PuTTYgen.
  2. Откройте ваш PPK-файл (Файл — Загрузить приватный ключ).
  3. Если PuTTYgen попросит вас преобразовать ключ в новый формат, нажмите «Да».
  4. Подтвердите сохранение ключа в новом формате, указав имя файла и нажав «Сохранить».
  5. Теперь вы можете использовать новый ключ вместо старого.

2. Перезагрузите систему

Иногда перезагрузка системы может помочь исправить ошибку «Windows ssh ppk invalid format». Попробуйте перезагрузить компьютер и проверьте, появится ли ошибка после перезагрузки.

3. Установите пакет OpenSSH для Windows

Если вы используете Windows 10, вы можете установить пакет OpenSSH для Windows, чтобы избежать проблем с форматом PPK. Чтобы это сделать, следуйте этим шагам:

  1. Откройте «Панель управления» и перейдите в раздел «Программы».
  2. Нажмите на «Включение или отключение компонентов Windows».
  3. Найдите в списке «OpenSSH-сервер» и установите флажок.
  4. Нажмите «OK» и дождитесь завершения установки.
  5. После установки вы сможете использовать SSH-ключи без проблем.

Надеемся, что эти способы помогут вам исправить ошибку «Windows ssh ppk invalid format» и продолжить использовать SSH без проблем.

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:

<login as: myusername
Authenticating with public key: rsa-key-20181027
Passphrase for key «rsa-key-20181027»:
servername:$>

Screenshots
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.


Некоторое время назад я настроил сервер на AWS и использовал их сгенерированный ключ SSH. Я сохранил ключ в Lastpass и успешно извлек его оттуда, и он заработал. Однако, попробовав сегодня снова, я не могу заставить его работать.

-rw------- 1 itsgreg users 1674 Jun 6 12:51 key_name

Я пробовал ssh -i key_name, ssh-keygen -f key_nameно ничего не работает, я всегда получаю это сообщение об ошибке:

Load key "key_name": invalid format

Есть ли способ это исправить?

Ответы:


Проверьте содержимое key_name, если агент говорит invalid format, что с ключом что-то не так — как … Вы уверены, что это правильный ключ? Даже если вам нужен не секретный ключ, агент ssh не вернется, invalid formatесли ключ работает, вы просто не сможете подключиться. Возможно, вы по какой-то причине поместили туда свой открытый ключ. Проверь это!






Что я сделал, чтобы исправить эту проблему, так это то, что я использую для преобразования PPK-файл, используя PuttyGen.

Сначала загрузите urkey.PPK, затем в меню конвертации выберите экспорт в формат файла Openssh. Это создаст файл newkey.

в настоящее время, ssh -i "newkey" user@127.0.0.1

Выполнено. Надеюсь, это поможет.


Я просил openssh использовать определенный файл идентификации, указав его в файле .ssh / config.

Исходная рабочая конфигурация имела

IdentityFile = <path to public key file> 

Это перестало работать без каких-либо изменений. Немного подумав, я заменил «путь к файлу открытого ключа» выше на «путь к файлу закрытого ключа». Это сработало. Причина заключается в том, что файлы открытого и закрытого ключей имеют большие числа, связанные с преступным преступлением, согласно алгоритму RSA. Если вы замените файл закрытого ключа файлом открытого ключа, эти криптографические числа не будут правильно извлечены из блока base64, сохраненного в файлах ключей. Кажется, некоторые версии ssh могут определить расширение .pub и использовать его для определения правильного файла закрытого ключа — а другие версии этого не делают. Это еще один способ, которым эта ошибка может произойти. Надеюсь, это кому-нибудь поможет.



У меня была та же проблема, и оказалось, что у меня в файле по какой-то причине были разделители строк в стиле Windows (CRLF).

Кроме того, файл должен заканчиваться одним LF.

Починить эти сделанные вещи снова.



Вы должны преобразовать ваш ключ .ppk в ключ OpenSSH

Вот как вы это делаете :

  1. Загрузите PuttyGen и создайте свою пару ключей (если у вас нет готовой пары ключей). Сохраните закрытый ключ в вашу папку (.ppk)
  2. Если у вас уже есть закрытый ключ, загрузите файл закрытого ключа (.ppk), нажав кнопку «Загрузить». В противном случае пропустите этот шаг
  3. В меню «Конверсии» выберите «Экспортировать ключ OpenSSH» и сохраните его в своей папке.
  4. Теперь вы готовы использовать ключ для входа на сервер без ввода пароля (я предполагаю, что вы уже поместили открытый ключ в /root/.ssh/authorized_keys, chmod 600 /root/.ssh/authorized_keys и перезапущенный демон SSH)

Я только что столкнулся с этим сегодня, когда писал несколько утилит git tagging для моего конвейера CI.

Вот разница между моими двумя ключами:

$ diff ~/.ssh/gitlab ~/.ssh/git_ssh_key
27c27
< -----END OPENSSH PRIVATE KEY-----
---
> -----END OPENSSH PRIVATE KEY-----
\ No newline at end of file

Я изменил свой код так:

     with open(ssh_key_file, 'w') as skf:
-        skf.write(ssh_key)
+        skf.write(ssh_key + '\n')

И теперь мой ключ ssh работает.

TL; DR — Я думаю, у вас должен быть символ новой строки в конце вашего закрытого ключа.


В моем случае оказалось, что у меня есть новые строки между начальными / конечными «заголовками» и ключевыми данными:

-----BEGIN RSA PRIVATE KEY-----

- Key data here -

-----END RSA PRIVATE KEY-----

Убрав лишние новые строки, чтобы стало

-----BEGIN RSA PRIVATE KEY-----
- Key data here -
-----END RSA PRIVATE KEY-----

решил мою проблему.


Используйте свой закрытый ключ вместо открытого ключа.



У меня возникла эта проблема, потому что у меня был ключ в ~ / .ssh, который на самом деле был недопустимым форматом, и у меня было много ключей, что означало, что SSH пробовал их все, хотя я указал свой файл идентификации в команде. Это просто происходит сбой, потому что он может попробовать только 5 ключей, я думаю, а затем оставил меня с этой ошибкой, которая была законной, только для неправильного файла идентификации. Решение было просто использовать IdentitiesOnly yesв моем ~ / .ssh / config.


У меня была эта ошибка, потому что в начале файла ключа была пустая строка. Легко пропустить, если вы это делаете cat.


Это также ошибка, которую выдает ssh (по крайней мере, в некоторых версиях), если у вас есть секретная фраза в вашем закрытом ключе, и вы неправильно вводите идентификационную фразу при попытке подключения.

(В частности, это случилось со мной с: OpenSSH_7.6p1, LibreSSL 2.6.2, который является встроенным SSH для Mac OS X 10.13.6.)

Поэтому дважды проверьте, что вы используете правильную фразу-пароль и что CAPS LOCK выключен.


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

Шаги, которые я предпринял

Создайте свой открытый ключ:

Убедитесь, что вы находитесь в той же директории, где у вас есть закрытый ключ

Как создать открытый ключ:

ssh-keygen -y -f Private-Key.pem > Public-key.pub

убедитесь, что ключ PUBLIC имеет расширение .pub

после этого предоставьте соответствующие разрешения по соображениям безопасности:

chmod 600 Private-Key.pem
chmod 400 Public-key.pub

ТОГДА самая важная часть и причина, по которой вы получили ошибку «неверный формат»

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

Удалите .pem из вашего закрытого ключа.

mv Private-Key.pem Private-Key

или если на компьютере с Windows переименуйте закрытый ключ, то же имя просто удалите .pem

Это что же такое творится, люди?

Полдня настраивал авторизацию SSH по ключу. И так, и эдак, и все рекомендации и рецепты прочитал — не логинится Putty и всё. Сервер все время требует пароль.

Что делал

Публичный и приватный ключ были сгенерированы через Puttygen. Публичный положил на сервер в файл:

В файл /etc/ssh/sshd_config прописал:

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile      .ssh/authorized_keys

Перезагрузил sshd на всякий случай. На клиенте в Putty указал для коннекта приватный ключ. И всеравно требуется пароль.

Как решил

Закралось подозрение, что sshd по каким-то причинам не видит ключа. Решил сгенерировать открытый и закрытый ключ на самом сервере:

ssh-keygen -t rsa -C 'myemail@mail.ru'

Открытый положил как ~/.ssh/authorized_keys. Закрытый скопировал на клиента. Указываю этот закрытый ключ в Putty — а Putty говорит: не понимаю такого формата.

Сравниваю форматы — действительно очень разные. Так, значит воспользоваться Linux-ключами в Putty не получится.

Тогда для интереса сравниваю форматы открытых ключей — тоже разные!

Puttygen генерирует открытый ключ такого вида:

---- BEGIN SSH2 PUBLIC KEY ----
Comment: "rsa-key-20121228"
AAALkjsfasdfkvKJHKJHkdsadasfjgQ50WpuUXFwHlA0STFJQT77nIp5PTo86qa+
RRNDQRxgaRt3ENk0sM38LJKJKGJHGsakKLYZxabZayRwxGHChNWfR+/5GkoPj93J
lpV1e2Sbr4Guogw5OBKJmwcDt3c7gQj+gX7XKJHsafdkjfaK345hs3QH4Bt/gwiL
2U/UhQM=
---- END SSH2 PUBLIC KEY ----

А ssh-keygen генерирует открытый ключ такого вида:

ssh-rsa AdPhkjhb487LhsDLOdaf0aREf ... MUFwE08g2xjEWNZ3==

И, соответственно, sshd не понимает формата Putty.

Для интереса решил сделать следующее. Преобразовал руками файл публичного ключа, сделанный Putty в формат ssh-keygen. Убрал переносы строк, сделал первыми символы «ssh-rsa ». То есть вот так:

ssh-rsa AAALkjsfasdfkvKJHKJHkdsa ... Bt/gwiL2U/UhQM=

На сервере поставил этот исправленный Puttygen открытый ключ, на клиенте — закрытый Puttygen ключ для него.

И о чудо! Смог зайти без пароля по ключу.

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

Содержание

  1. SSH Внезапно возвращается неверный формат
  2. Windows 10 OpenSSH key invalid format [closed]
  3. 5 Answers 5
  4. key_load_public: invalid format
  5. 15 Answers 15
  6. The Formats
  7. OpenSSH
  8. Regenerating Public Keys
  9. Bonus: The PKCS#1 PEM-encoded Public Key Format
  10. Git clone. key_load_public: invalid format Permission denied (publickey)
  11. 3 Answers 3
  12. Using a PuTTY private key from windows to linux
  13. 2 Answers 2

SSH Внезапно возвращается неверный формат

Некоторое время назад я настроил сервер на AWS и использовал их сгенерированный ключ SSH. Я сохранил ключ в Lastpass и успешно извлек его оттуда, и он заработал. Однако, попробовав сегодня снова, я не могу заставить его работать.

-rw——- 1 itsgreg users 1674 Jun 6 12:51 key_name

Я пробовал ssh -i key_name , ssh-keygen -f key_name но ничего не работает, я всегда получаю это сообщение об ошибке:

Load key «key_name»: invalid format

Есть ли способ это исправить?

Проверьте содержимое key_name , если агент говорит invalid format , что с ключом что-то не так — как . Вы уверены, что это правильный ключ? Даже если вам нужен не секретный ключ, агент ssh не вернется, invalid format если ключ работает, вы просто не сможете подключиться. Возможно, вы по какой-то причине поместили туда свой открытый ключ. Проверь это!

Что я сделал, чтобы исправить эту проблему, так это то, что я использую для преобразования PPK-файл, используя PuttyGen .

Сначала загрузите urkey.PPK , затем в меню конвертации выберите экспорт в формат файла Openssh. Это создаст файл newkey.

в настоящее время, ssh -i «newkey» user@127.0.0.1

Выполнено. Надеюсь, это поможет.

Я просил openssh использовать определенный файл идентификации, указав его в файле .ssh / config.

Исходная рабочая конфигурация имела

Это перестало работать без каких-либо изменений. Немного подумав, я заменил «путь к файлу открытого ключа» выше на «путь к файлу закрытого ключа». Это сработало. Причина заключается в том, что файлы открытого и закрытого ключей имеют большие числа, связанные с преступным преступлением, согласно алгоритму RSA. Если вы замените файл закрытого ключа файлом открытого ключа, эти криптографические числа не будут правильно извлечены из блока base64, сохраненного в файлах ключей. Кажется, некоторые версии ssh могут определить расширение .pub и использовать его для определения правильного файла закрытого ключа — а другие версии этого не делают. Это еще один способ, которым эта ошибка может произойти. Надеюсь, это кому-нибудь поможет.

У меня была та же проблема, и оказалось, что у меня в файле по какой-то причине были разделители строк в стиле Windows (CRLF).

Кроме того, файл должен заканчиваться одним LF.

Починить эти сделанные вещи снова.

Вы должны преобразовать ваш ключ .ppk в ключ OpenSSH

Вот как вы это делаете :

  1. Загрузите PuttyGen и создайте свою пару ключей (если у вас нет готовой пары ключей). Сохраните закрытый ключ в вашу папку (.ppk)
  2. Если у вас уже есть закрытый ключ, загрузите файл закрытого ключа (.ppk), нажав кнопку «Загрузить». В противном случае пропустите этот шаг
  3. В меню «Конверсии» выберите «Экспортировать ключ OpenSSH» и сохраните его в своей папке.
  4. Теперь вы готовы использовать ключ для входа на сервер без ввода пароля (я предполагаю, что вы уже поместили открытый ключ в /root/.ssh/authorized_keys, chmod 600 /root/.ssh/authorized_keys и перезапущенный демон SSH)

Я только что столкнулся с этим сегодня, когда писал несколько утилит git tagging для моего конвейера CI.

Вот разница между моими двумя ключами:

Я изменил свой код так:

И теперь мой ключ ssh работает.

TL; DR — Я думаю, у вас должен быть символ новой строки в конце вашего закрытого ключа.

Источник

Windows 10 OpenSSH key invalid format [closed]

This question does not appear to be about a specific programming problem, a software algorithm, or software tools primarily used by programmers. If you believe the question would be on-topic on another Stack Exchange site, you can leave a comment to explain where the question may be able to be answered.

Closed 4 months ago .

The community reviewed whether to reopen this question 4 months ago and left it closed:

Original close reason(s) were not resolved

The recent beta version of OpenSSH on Windows 10 does not accept my openssh formatted private key:

The same key works on ssh shipped with git shell from github.

Is there a format option for openssh on Windows that I’m missing or is this a bug?

5 Answers 5

I got this working.. believe it or not by adding a single LF at the end of your private key file. E.G

Without the LF the private key worked fine with putty, secureCRT, WinSCP, GIT etc. but Windows (which is used by VisualCode) Kept giving me «invalid Format»

Windows 10 currently (as of January 2018) only supports ed25519 keys (reference: https://github.com/PowerShell/Win32-OpenSSH/issues/973). I see that you are trying to connect to Amazon Web Services. If you manage your key using the AWS console, you can only use an RSA key.

However, if you are trying to connect to an existing EC2 instance, you can do the following:

  1. Create the private/public key in Windows cmd using the command «ssh-keygen», if you have not already done this. The key pair is saved in files id_ed25519.pub and id_ed25519 in your .ssh directory
  2. Connect to your AWS EC2 instance. Add the contents of the id_ed25519.pub to your authorized_keys file within the .ssh directory
  3. Now you can connect to your EC2 instance using the Windows 10 SSH client.

Источник

key_load_public: invalid format

I used PuTTY Key Generator to generate a 4096 bit RSA-2 key with a passphrase.

I save the .ppk and an openSSL format public key. The putty format public key doesn’t work.

In any case, my error is as follows:

What’s the issue?

I use Pageant to load the keys and i use Git Bash to try the ssh connection. I’ve also loaded the key into GitHub, not sure what i’m doing wrong.

I’ve tried adding a new line and not adding a new line in GitHub

/.ssh/known_hosts is bad — ssh is looking for github’s public key. You can run ‘file key’ to find out key file’s format.

15 Answers 15

As Roland mentioned in their answer, it’s a warning that the ssh-agent doesn’t understand the format of the public key and even then, the public key will not be used locally.

However, I can also elaborate and answer why the warning is there. It simply boils down to the fact that the PuTTY Key Generator generates two different public key formats depending on what you do in the program.

Note: Throughout my explanation, the key files I will be using/generating will be named id_rsa with their appropriate extensions. Furthermore, for copy-paste convenience, the parent folder of the keys will be assumed to be

/.ssh/ . Adjust these details to suit your needs as desired.

The Formats

When you save a key using the PuTTY Key Generator using the «Save public key» button, it will be saved in the format defined by RFC 4716.

OpenSSH

Contrary to popular belief, this format doesn’t get saved by the generator. However it is generated and shown in the text box titled «Public key for pasting into OpenSSH authorized_keys file». To save it as a file, you have to manually copy it from the text box and paste it into a new text file.

For the key shown above, this would be:

The format of the key is simply ssh-rsa and can be created by rearranging the SSH-2 formatted file.

Regenerating Public Keys

If you are making use of ssh-agent , you will likely also have access to ssh-keygen .

If you have your OpenSSH Private Key ( id_rsa file), you can generate the OpenSSH Public Key File using:

If you only have the PUTTY Private Key ( id_rsa.ppk file), you will need to convert it first.

  1. Open the PuTTY Key Generator
  2. On the menu bar, click «File» > «Load private key»
  3. Select your id_rsa.ppk file
  4. On the menu bar, click «Conversions» > «Export OpenSSH key»
  5. Save the file as id_rsa (without an extension)

Now that you have an OpenSSH Private Key, you can use the ssh-keygen tool as above to perform manipulations on the key.

Bonus: The PKCS#1 PEM-encoded Public Key Format

To be honest, I don’t know what this key is used for as I haven’t needed it. But I have it in my notes I’ve collated over the years and I’ll include it here for wholesome goodness. The file will look like this:

This file can be generated using an OpenSSH Private Key (as generated in «Regenerating Public Keys» above) using:

Alternatively, you can use an OpenSSH Public Key using:

Источник

Git clone. key_load_public: invalid format Permission denied (publickey)

I used puttygen.exe on Windows 10 to generate private and public keys. I saved that keys in C:\Users\Alexander\.ssh\

Public key was added to remote repo (Not by me. I don’t have an access).

Then I used command in Git Bash:

And I got an error:

Example keys (generated for just for example)

What may be wrong here?

3 Answers 3

Git is using OpenSSH and it does not support PuTTY key formats. You need to convert it to OpenSSH format. This was described in SO documentation, now in the answer to Not able to add SSH key in Jenkins configuration:

  • Open PuttyGen
  • Click Load
  • Load your private key
  • Go to Conversions->Export OpenSSH and export your private key
  • Copy your private key to

Sorry for answering an old question, but the listed solutions didn’t help. Here’s what worked for me:

Git may not be using the correct SSH client for outgoing connections.

I was having a similar issue and ended up finding an answer that set me on the right track to fix it. From what I understand, both Git & My command line where generating key-pairs using openssh, but Git was attempting to open them using it’s own SSH client.

I’m not sure why Git would use two different ssh clients, one for generating, one for connecting, but this was evidenced by being able to verify my key by opening an SSH session to GitHub, but not connect to a repository. A further check seemed to validate the theory:

And in git bash:

While trying the commands listed in the answer didn’t fix my problem, they led me on a much more successful google search that got me to this GitHub comment, which contained the following single line command, to be run in git bash:

This command will not output anything if it works, but it will set git to use the ssh client packaged with windows instead of the one included with git. After running this command, Git worked flawlessly for me.

Weirdly enough, running «where ssh» in git bash now returns two paths, but it doesn’t seem to be causing any more issues:

Источник

Using a PuTTY private key from windows to linux

I’ve generated two keys on PuTTY: public and private. Using this software on windows I can connect to the server as usual.

Then I tried to copy those files in my ubuntu machine (21.04), and logged in loading the private key (open putty, write the user@hostname and then load the private key at SSH>Auth), but there is unable to connect being rejected by the server as this error says:

And an emerging windows appears saying:

So, as the first error suggest, after convert the private key to openssh PEM format through PuTTYgen and then load that file to SSH/Auth, the ‘No supported’ message remains before:

Is there any way to use these keys on Ubuntu? Maybe through openssh?

Some info that will be useful:

  • New installed version of Ubuntu
  • PuTTY 0.74

The output while trying with ssh -i

/.ssh/private_key.ppk»: invalid format user@hostname: Permission denied (publickey).

2 Answers 2

The answers/comments by Adonis and Thomas are basically correct, but lack some detail that I needed to get this working in practice. Since I don’t have enough reputation to comment, I’ll add the detail via this answer.

Export the Putty PPK to OpenSSH format.

To do this, open PuttyGen, Load the private key, and then go to the «Conversions» menu and choose «Export OpenSSH Key»

Using the OpenSSH key on Ubuntu (or derivatives)

If you are using it for SSH directly, you can use it as Adonis mentioned. But what if you need it indirectly, e.g. for use with source control systems?

Copy it to your

/.ssh folder on Linux. You may need to create this folder if you haven’t used SSH on your Linux box before. When you create the .ssh directory, you need to chmod 0700

/.ssh so that the ssh tool believes that the directory is really private to you.

If you copied the key file from Windows, now open a terminal to the

/.ssh folder, and run chmod 400 [private key file name] . This is necessary because the default permissions (when copied from Windows) will be 770; the SSH utility will tell you that is too permissive and that it will ignore the key. Unfortunately it doesn’t directly tell you how to fix the problems, but 400 permissions, which mean «readable to me, not available to anyone else», will correct the problem.

Now, at a terminal, run eval $(ssh-agent) . This opens your local SSH agent, and allows you to add keys that can be picked up by other programs, such as source control.

Finally, run ssh-add

/.ssh/[private file key name] . As long as you remembered to set permissions, it should work, and you should be able to use git/hg/etc. with your SSH key.

Источник

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Служба для windows на python
  • 0x80240017 ошибка обновления windows 10
  • Редактор bash для windows
  • Установка windows в балашихе
  • Usbprint canonlbp3010 lbp30188748 для windows 10 64 bit