У меня есть репозиторий git на внешнем жестком диске, смонтированный на /run/media/
. Когда я пытаюсь отправить код в онлайн-репозиторий github с помощью git push -u origin master
, я получаю следующую ошибку:
/usr/bin/ssh: symbol lookup error: /lib64/libk5crypto.so.3: undefined symbol: EVP_KDF_ctrl, version OPENSSL_1_1_1b
fatal: Could not read from remote repository.
Думая, что что-то не работает в krb5-libs или git, я попытался отправить другой другой репозиторий, расположенный в моей папке /home/
, но это сработало.
Что плохого в размещении репозиториев на внешнем жестком диске? Как исправить предыдущую ошибку?
Я использую ядро Fedora 32 5.6.18-300.fc32.x86_64.
Проблема, которую вы здесь видите, заключается в том, что версия библиотек Kerberos 5 и версия OpenSSL, которую вы используете, несовместимы.
В большинстве дистрибутивов OpenSSH скомпилирован с поддержкой Kerberos 5. Библиотеки, используемые для криптографии для Kerberos, в вашем случае связаны с OpenSSL.
Причина, по которой отправка в другой репозиторий в вашем домашнем каталоге работает, заключается в том, что Git не использует для этого команду ssh
, и, следовательно, вы не видите никаких проблем. Если вы попытаетесь использовать ssh
для входа в другую систему, вы увидите ту же проблему. Нет ничего принципиально плохого в том, чтобы хранить репозитории на другом диске; это отвлекающий маневр.
Сначала следует переустановить пакеты krb5-libs
и openssl
и посмотреть, работает ли это. Если вы установили какие-либо локальные копии OpenSSL или Kerberos (, посмотрите /usr/local/lib
и /usr/local/lib64
), затем удалите их и запустите ldconfig
.
Вам также может быть полезно запустить ldd $(which ssh)
, чтобы найти расположение любых библиотек, которые использует OpenSSH, и удалить все, что не поставляется Fedora.
Даже в «правильно» настроенных системах это и подобные сообщения об ошибках могут быть вызваны временными изменениями в системной среде. Это прерывистое поведение может сбивать с толку при устранении неполадок, но откат или предотвращение проблемных изменений среды должно решить проблему.
Примеры:
module load
-установка определенного программного обеспечения может привести к неправильной -настройке среды для git, что приведет к этой ошибке. Если загрузка модуля вызывает эту ошибку, module del <the_module>
должен решить проблему.