Kerberos가 어떻게 작동하는지 알아 내려고 노력 중입니다. /tmp/
예를 들어 Kerberos 파일이 여러 개 있습니다 . krb5cc_<user-id>
그 파일은 정확히 무엇입니까? 그것들을 보면 단지 암호화된 문자열일 뿐이라는 것을 알 수 있습니다. 누군가가 Docker 파일에서 해당 파일을 사용하려는 경우 어떻게 액세스할 수 있나요? Docker 환경 격리로 인해 액세스할 수 없습니다 /tmp
. 그렇다면 이러한 Kerberos 티켓을 어떻게 얻을 수 있습니까?
답변1
당신이 찾은 것은 Kerberos 자격 증명 캐시("은닉처"). 이는 유효하고 사용자 세션 기간 동안 Kerberos 자격 증명을 유지합니다. 이는 KDC(키 배포 센터)와의 접촉을 최소화하는 데 도움이 됩니다.
Kerberos, 특히 이러한 파일의 목적과 기능을 명확히 하는 데 도움이 되는 풍부한 지식이 있습니다.
Kerberos는 MIT에서 개발되었기 때문에 프로토콜에 대한 좋은 문서가 있으며 저는 항상 그 복잡성에 대해 언급합니다.
자격 증명 캐시에는 일반적으로 비밀번호나 다른 형태의 인증을 사용하여 얻은 초기 티켓이 포함되어 있습니다. 이 티켓이 티켓 부여 티켓인 경우 이를 사용하여 비밀번호 없이 추가 자격 증명을 얻을 수 있습니다. 자격 증명 캐시는 암호를 저장하지 않기 때문에 컴퓨터가 손상되더라도 사용자 계정이 장기적으로 손상될 가능성이 적습니다.
이는 또한 귀하 kinit
와 klist
귀하가 캐시된 콘텐츠를 사용자에게 표시할 때 해당 캐시가 어디에서 가져오는지에 대한 아이디어를 제공합니다 klist
(이와 같은 내용이 표시되는 이유를 파악하는 데도 도움이 될 수 있습니다 /tmp
).
[kkahn@host ~]$ klist
Ticket cache: FILE:/tmp/krb5cc_1987
Default principal: [email protected]
Valid starting Expires Service principal
02/22/21 15:34:12 02/23/21 15:34:09 krbtgt/[email protected]
kdestroy
사용자의 자격 증명 캐시에 0을 쓰는 경우 . man kdestroy
다음 사항을 명확히 해야 합니다.
DESCRIPTION
The kdestroy utility destroys the user's active Kerberos authorization tickets by writing zeros to the specified credentials cache that contains them. If the credentials cache is not specified, the default credentials cache is destroyed. If kdestroy was built with Kerberos 4
support, the default behavior is to destroy both Kerberos 5 and Kerberos 4 credentials. Otherwise, kdestroy will default to destroying only Kerberos 5 credentials.
답변2
누군가가 Docker 파일에서 해당 파일을 사용하려는 경우 어떻게 액세스할 수 있나요?
컨테이너 내부에서 호스트에 있는 기존 자격 증명 캐시를 사용하려면 이를 컨테이너에 탑재한 다음 설정하면 됩니다.KRB5CCNAME
환경 변수설치할 경로를 지정하십시오.
docker run -v /tmp/krb5cc_$UID:/tmp/krb5cc -e KRB5CCNAME=/tmp/krb5cc ...