R Shell和Kerberos票证

时间:2015-11-16 12:45:55

标签: r kerberos

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

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

我如何使用Kerberos票证?

  

[user @ server~] $:kinit

     

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

     

[user @ server~] $:R

     

- R load -

     

>源( 'samecode.r')

     

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

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

创建它
system('kinit');

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

1 个答案:

答案 0 :(得分:6)

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

system("kinit username@ADS.IU.EDU -k -t username.keytab")

要创建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 

解释了创建keytab的所有步骤here

keytab文件必须在您的工作目录中。