R Shell和Kerberos票证

Wor*_*ast 3 kerberos r

我在RStudio中通过JDBC有一个hive连接没有问题,我在'Tools <Shell:kinit'中创建了Kerberos票证并且一切正常,我可以使用Kerberos TGT.

但是,如果我通过shell/ssh制作相同的方法并在终端(非RStudio)中加载R,则R无法使用Kerberos TGT文件并失败

我如何使用Kerberos票证?

[user @ server~] $:kinit

user @ domain的密码: - i输入密码 -

[user @ server~] $:R

- R load -

> source('samecode.r')

错误由以下原因引起:java.sql.SQLException:无法创建与jdbc的安全连接:hive2:.... etc

任何的想法?如果我们不创建票证,则会在RStudio中发生此错误,但是当它在工具> shell中创建时,一切正常,在控制台中它是不可能的.我尝试用它来创建它

system('kinit');
Run Code Online (Sandbox Code Playgroud)

并创建罚单,但不能在其余代码中使用它

Vic*_*orp 6

嗨,您可以使用keytab文件和此命令在R中创建kerberos票证:

system("kinit username@ADS.IU.EDU -k -t username.keytab")
Run Code Online (Sandbox Code Playgroud)

要创建keytab你必须通过shell执行此操作:

ktutil
ktutil:  addent -password -p username@ADS.IU.EDU -k 1 -e rc4-hmac
Password for username@ADS.IU.EDU: [enter your password]
ktutil:  addent -password -p username@ADS.IU.EDU -k 1 -e aes256-cts
Password for username@ADS.IU.EDU: [enter your password]
ktutil:  wkt username.keytab
ktutil:  quit 
Run Code Online (Sandbox Code Playgroud)

这里keytab解释了创建a的所有步骤

keytab文件必须位于您的工作目录中.