외장 하드 드라이브에 git 저장소가 설치되어 있습니다 /run/media/<myusername>/<drivename>
. 코드를 온라인 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.
/home/<username>
krb5-libs 또는 git에서 문제가 발생했다고 생각하여 내 폴더에 있는 다른 저장소 로 푸시를 시도했는데 제대로 작동했습니다.
외장 하드 드라이브에 저장소를 배치하는 데 문제가 있습니까? 이전 오류를 어떻게 수정할 수 있나요?
저는 Fedora 32 커널 5.6.18-300.fc32.x86_64를 사용하고 있습니다.
답변1
여기서 보고 있는 문제는 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에서 제공하지 않는 라이브러리를 제거하는 것도 도움이 될 수 있습니다 .
답변2
"올바르게" 구성된 시스템에서도 시스템 환경의 일시적인 변경으로 인해 이와 유사한 오류 메시지가 발생할 수 있습니다. 이러한 간헐적인 동작으로 인해 문제 해결이 혼란스러울 수 있지만 문제가 되는 환경 변경을 되돌리거나 피하면 문제가 해결됩니다.
예:
- SLURM 시스템에서
module load
일부 소프트웨어는 git 환경을 잘못 구성하여 이 오류를 일으킬 수 있습니다. 모듈을 로드할 때 이 오류가 발생하면module del <the_module>
문제가 해결됩니다. - OP의 문제는 환경 변수 수정으로 인해 발생합니다. 원래 환경 구성을 사용한 "새" 터미널 세션을 통해 문제가 수정되었으며 영향을 받은 환경 변수도 복원되었습니다.