저는 Ubuntu 서버를 실험하고 있으며 OpenLDAP 서버에 OpenSSH 키를 저장하고 있습니다. 이를 달성하는 방법에 대한 충분한 예가 있습니다. 좋은 소스는이것. 어떻게 든 내 키가 Base64 인코딩으로 반환됩니다. 소스에 따르면 이는 저장된 키의 후행 개행 문자로 인해 발생할 수 있다는 것을 발견했습니다. 나는 이것이 내 문제가 아니라고 확신합니다. 이 문제를 어떻게 해결할 수 있나요?
답변1
LDAP 출력의 Base64 인코딩은 문제가 되지 않으며 "수정"할 필요가 없습니다. 이는 LDAP 데이터를 텍스트 형식으로 표현하기 위한 LDIF 형식 구문의 일부입니다.
LDIF 출력에서 Base64로 인코딩된 데이터 앞에는 단일 콜론 대신 이중 콜론이 표시됩니다.
key1: value1
key2:: dmFsdWUy
이 예에서 첫 번째 값( value1
)은 일반 텍스트로 표시되고 두 번째 값( value2
)은 base-64로 인코딩됩니다.
LDIF로 출력되는 값에 LDIF 구문에 존재할 수 없는 특수 문자가 포함되어 있는 경우 출력 도구는 Base 64 인코딩 기능을 사용해야 합니다. 이것이 삽입된 개행 문자가 포함된 값을 인코딩해야 하는 이유입니다. 그러나 도구는 꼭 필요한 경우에만 인코딩 기능을 사용하도록 제한되지 않으며, 값에 실제 공백을 삽입하지 않고 긴 값을 여러 줄로 분할하는 등 어떤 이유로든 사용할 수 있습니다. SSH 키의 품질은 물론 공백이 거의 없는 긴 문자열과 같습니다.
LDIF를 구문 분석하는 도구는 이중 콜론을 인식하고 인코딩된 값이 나타날 때마다 이를 올바르게 디코딩해야 합니다.
답변2
Serada의 답변이 합리적으로 들리지만 제 경우에는 문제가 되지 않습니다. 처음에는 phpldapadmin을 사용하여 키를 추가했는데, 분명히 소프트웨어가 키 끝에 뭔가를 추가하여 base64 인코딩이 트리거되었습니다. 키를 삭제하고 webmin을 사용하여 다시 추가했는데 이번에는 키가 일반 일반 텍스트로 반환됩니다.