Вопрос или проблема
ОБНОВЛЕНО
Когда я пытаюсь сгенерировать открытый ключ, мне все еще выдается ошибка
“ошибка в libcrypto”
Load key “breakthis”: ошибка в libcrypto
Приватный ключ указан ниже
Я пытаюсь решить машину Hack the Box
Я смог получить приватный ключ, затем я конвертировал этот ключ в хеш для JOHNTHERIPPER и успешно его взломал
Но теперь, когда я пытаюсь войти через ssh, я получаю следующую ошибку
Я много искал, но не могу решить эти ошибки
ssh -i id_rsa [email protected]
load pubkey "id_rsa": invalid format
Load key "id_rsa": error in libcrypto
[email protected]'s password:
В моем случае я скопировал файл ключа с помощью буфера обмена, что привело к созданию аналогичного файла, но без завершающего символа новой строки. Этого было достаточно, чтобы сбить libcrypto. Открытие файла в vim и :wq
закрытие его было достаточно, чтобы добавить новую строку, и это решило мою проблему.
Больше информации
Вот что вам нужно для этого файла:
- Концы строк LF (также известные как Unix). Не CRLF (также известные как Windows)
- Завершающая новая строка (означает: последний символ всего файла должен быть новой строкой).
Чтобы убедиться, что у вас есть оба,
предположим, ваш файл ключа ~/.ssh/id_rsa
, вы можете сделать это:
dos2unix ~/.ssh/id_rsa
vim --clean ~/.ssh/id_rsa
Когда окажетесь в vim, наберите :wq
, затем нажмите клавишу return
.
ОШИБКА: load pubkey “id_rsa”: invalid format
Это происходит, когда используется открытый ключ в ~/.ssh/config вместо использования приватного ключа.
Я исправил ошибку Load key "id_rsa": error in libcrypto
, добавив символ управления LF
(новая строка) в конце последней строки -----END OPENSSH PRIVATE KEY-----
файла .pem
.
До (не работает):
После (работает):
Обратите внимание на дополнительный символ управления LF
в последней непустой строке. Можно добавить символ управления LF
, просто нажав клавишу ENTER.
Команды, использованные для SSH на мой удаленный компьютер:
chmod 400 key.pem
ssh -i "key.pem" [email protected]
Обратите внимание: сообщение об ошибке может быть следующим:
Load key "id_rsa": error in libcrypto
(я видел его на своем компьютере с Ubuntu).Load key "key.pem": invalid format
(я видел его на своем компьютере с Windows).
Чтобы показать управляющие символы конца строки в Notepad++:
для будущих читателей.
Я использовал файл ключа ssh внутри YAML-файла Gitlab CI и постоянно получал сообщение error in libcrypto
.
Я сделал 2 вещи, которые ИСПРАВИЛИ проблему:
- Просто изменил тип переменной с переменной
FILE
наENV_VAR
- Использовал
ssh-keygen -t ed25519
при генерации ключа. Похоже, gitlab не поддерживает ключи по умолчаниюrsa
.
После этого все заработало.
Также используйте это как базовый before_script
:
before_script:
- 'command -v ssh-agent >/dev/null || ( apt-get update -y && apt-get install openssh-client wget gnupg -y )'
- wget -qO- https://get.docker.com/gpg | apt-key add -
- eval $(ssh-agent -s)
- echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add -
- mkdir -p ~/.ssh
- touch ~/.ssh/config
- touch ~/.ssh/known_hosts
- chmod -R 400 ~/.ssh
- ssh-keyscan <ip> >> ~/.ssh/known_hosts
- '[[ -f /.dockerinit ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config'
Я получил эту ошибку, когда использовал 2 аккаунта github с 2 ключами ssh, но избавился от нее, когда изменил файл конфигурации, как показано ниже,
myDir$ ssh -T [email protected]
Load key "/home/taxi/.ssh/mhmd_personal.pub": error in libcrypto
[email protected]: Permission denied (publickey).
От этого
Host *
AddKeysToAgent yes
IdentityFile ~/.ssh/mhmd_personal.pub
# IdentityFile ~/.ssh/id_ed25519
к этому
Host *
AddKeysToAgent yes
IdentityFile ~/.ssh/mhmd_personal
# IdentityFile ~/.ssh/id_ed25519
убрал расширение .pub из файла конфигурации.
что помогло мне, был ответ на этот вопрос
Я открыл ключ в puttygen
и затем экспортировал новый ppk с использованием конверсии –> Экспортировать ключ OpenSSH
Я только что решил эту проблему. Проблема была вызвана форматом текста.
Замените на следующий формат ssh-ключа, который выглядит так:
-----BEGIN OPENSSH PRIVATE KEY-----
ENCODED KEY DATA HERE
-----END OPENSSH PRIVATE KEY-----
Итак, в моем случае файл приватного ключа просто не имел разрешений на чтение для владельца. После добавления разрешения на чтение (chmod u+r id_ecdsa
) все заработало.
Обновленное решение для этого работает следующим образом
1 – установите права доступа на chmod 600 как для приватного ключа (id_rsa), так и для публичного (id_rsa.pub)
это избежит этой ошибки
"Permissions 0644 for '/root/.ssh/mad4dweb-imap.pub' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "/root/.ssh/xxxxx.pub": bad permissions"
2 – когда вы подключаетесь к удаленному серверу, вы должны использовать для этого приватный ключ (id_rsa), а не тот, который имеет расширение .pub, иначе вы получите ошибку
" ssh -T cp
Load key "/root/.ssh/xxxxx.pub": error in libcrypto
: Permission denied (publickey,password)."
https://superuser.com/questions/1724602/unable-to-ssh-with-key-into-my-synology-nas
.
Ответ или решение
Если вы сталкиваетесь с проблемами при входе в систему через SSH с использованием закрытого ключа, такими как "loaded pubkey invalid format" и "error in libcrypto", есть несколько шагов и рекомендаций, которые помогут устранить эти ошибки. Ниже подробно рассмотрим возможные причины и их решения.
1. Проверка формата файла закрытого ключа
Проблема "invalid format" может возникнуть, если файл закрытого ключа имеет неправильный формат текстового представления. Убедитесь, что содержимое файла соответствует правильному шаблону:
-----BEGIN OPENSSH PRIVATE KEY-----
ENCODED KEY DATA HERE
-----END OPENSSH PRIVATE KEY-----
Действие: Откройте файл в текстовом редакторе, таком как vim, и убедитесь, что каждая строка начинается и заканчивается правильно. Также, проверьте наличие пробелов или недостающих строк.
2. Настройка окончания строк и пустых строк
Другая распространенная причина ошибки связана с окончанием строк. Обратите внимание на то, что в Unix-системах строки завершаются LF (Line Feed), а не CRLF (Carriage Return + Line Feed), как в Windows.
Действие:
- Используйте команду
dos2unix
, чтобы конвертировать окончания строк:dos2unix ~/.ssh/id_rsa
. - Затем откройте файл в vim:
vim --clean ~/.ssh/id_rsa
, введите:wq
и нажмите Enter, чтобы убедиться, что файл корректно сохранен с нужными окончаниями строк.
3. Проверка прав доступа на файлы
SSH предъявляет строгие требования к правам доступа на файлы ключей. Ошибка может возникнуть, если разрешения установлены слишком открыто.
Действие: Установите права доступа для файла закрытого ключа:
chmod 600 ~/.ssh/id_rsa
4. Использование правильного ключа для подключения
Убедитесь, что для подключения используется именно закрытый ключ, а не публичный (с расширением .pub).
Действие: При выполнении команды ssh укажите закрытый ключ:
ssh -i ~/.ssh/id_rsa [email protected]
5. Исправление ошибок в конфигурации SSH
Если вы используете файл конфигурации SSH (~/.ssh/config
), убедитесь, что в нем указаны правильные значения.
Действие: Проверьте файл конфигурации и убедитесь, что он ссылается на закрытый ключ:
Host *
IdentityFile ~/.ssh/id_rsa
6. Другие факторы и обновления
Если предыдущие решения не привели к успеху, возможно, проблема связана с внутренними особенностями используемой вами конфигурации или программного обеспечения.
Действия:
- Используйте конвертеры и генераторы ключей, такие как
puttygen
, чтобы преобразовать ключ в нужный формат. - Убедитесь, что все используемые инструменты и библиотеки, такие как libcrypto, обновлены до последней версии.
Предприняв данные шаги, вы значительно повысите шансы успешного решения возникших проблем с подключением по SSH.