Kerberos 옵션은 smbclient에서 더 이상 사용되지 않지만 작동하는 유일한 옵션입니다!

Kerberos 옵션은 smbclient에서 더 이상 사용되지 않지만 작동하는 유일한 옵션입니다!

Slackware 15(Samba 버전 4.15.10)에서 gssapi/kerberos 인증을 사용하여 smbclient를 수행하고 싶습니다. 물론 로그인 시 Kerberos 클라이언트 캐시가 설정되어 있으며 tmp 디렉터리에서 파일 캐시를 볼 수 있습니다. Pam은 비밀번호 세션 및 인증에 pam_krb5를 사용하도록 구성되었습니다.

새로운 --use-kerberos..를 사용하면 비밀번호를 묻습니다!

smbclient -U pino --use-kerberos=required \\\\myhost\\Pub 
Password for [MYDOM\pino]:

-U pino를 제거하면 sudo su - Pino를 수행하거나 Pino로 로그인하는 것과 마찬가지입니다.

더 이상 사용되지 않는 -k..works를 사용하는 경우

smbclient -U pino -k \\\\myhost\\Pub 
    Password for [MYDOM\pino]:
    WARNING: The option -k|--kerberos is deprecated!
    Try "help" to get a list of possible commands.
    smb: \> 

-k 없이 kerberos를 사용하여 입력하는 방법은 무엇입니까?

편집: 버그일 수 있습니다. 또는 구성이 잘못되었지만 smbclient -U pino \\myhost\Pub를 사용하고 있습니다.

비밀번호를 물어보니..엔터를 누르고 kerberos를 사용했어요!

시나리오 1: 티켓을 받았고 패스를 요청했습니다.. Enter를 누르고 Kerberos를 사용합니다.

smbclient  \\\\myhost\\Pub
Password for [[email protected]]:
Try "help" to get a list of possible commands.
smb: \> 

사례 2: kdestroy, 인증 실패(논리적, OK, 오른쪽)

kdestroy
smbclient  \\\\myhost\\Pub
Password for [[email protected]]:
gensec_spnego_client_negTokenInit_step: Could not find a suitable mechtype in NEG_TOKEN_INIT
session setup failed: NT_STATUS_INVALID_PARAMETER

이제 질문은 ..왜 여전히 비밀번호를 요구합니까?

답변1

해결책을 찾으세요.

kerberos가 필요합니다(사용자 roaima로 인해 smb.conf에서 영구적으로 설정할 수도 있음). -N에는 패스가 필요하지 않습니다.

echo mypass|kinit
Password for [email protected]: 
smbclient -N --use-kerberos=required '\\myhost.priv\myshare'
Try "help" to get a list of possible commands.
smb: \> 

"이전" 구문을 사용해도 잘 작동합니다.

 echo mypass|kinit
 Password for [email protected]: 
 smbclient -N --use-kerberos=required \\\\MYHOST\\myshare
 Try "help" to get a list of possible commands.
 smb: \> 

답변2

smbclient테스트에 사용하는 컴퓨터에서 이전 버전 (4.9.5-Debian) 을 실행하고 있기 때문에 여기서 불리한 입장에 있습니다 . 그러나 따르면samba.org의 매뉴얼 페이지독립보다 선호되는 대안은 다음을 -k나타내는 것 같습니다.어떻게Kerberos를 사용하고 싶습니다.

--use-kerberos=desired|required|off이 매개변수는 Samba 클라이언트 도구가 인증을 위해 Kerberos를 사용하려고 시도하는지 여부를 결정합니다. Kerberos 인증을 위해서는 서비스 접속 시 IP 주소 대신 DNS 이름을 사용해야 합니다.

여기서 이 매개변수를 지정하면 파일 client use kerberos의 매개변수가 무시됩니다 ${prefix}/etc/smb.conf.

따라서 다음과 같은 시나리오를 사용하시기 바랍니다.

kinit [email protected]    # Domain in capitals. Provide password
smbclient --use-kerberos=required '\\SERVER\Share'

이전 형식의 명령을 사용하면 smbclient비밀번호를 묻는 메시지가 표시되지 않습니다.

smbclient -k '\\SERVER\Share'

귀하의 케이스와 이러한 불일치는 귀하가 kinit실패했거나 티켓이 만료되었음을 나타냅니다. 파일의 존재 여부에 의존하지 말고 /tmp대신 다음을 실행하십시오 klist.

klist
Ticket cache: FILE:/tmp/krb5cc_1001
Default principal: [email protected]

Valid starting     Expires            Service principal
28/10/22 17:25:55  29/10/22 03:25:55  krbtgt/[email protected]
        renew until 29/10/22 17:25:52
28/10/22 17:26:05  29/10/22 03:25:55  cifs/[email protected]

관련 정보