我正在尝试使用citrus对sftp服务器进行身份验证,我在这样的上下文文件中给出了usrname和密码

<citrus-sftp:client id="client"
   strict-host-checking="false"
   port="22"
   username="xxxxx"
   password="xxxxxxxx"
   timeout="1000"/>

当程序执行时,我得到一些提示,比如
"KEBROS USERNAME :  "

输入用户名后,它会询问
"KEBROS PASSWORD :  "

然后在程序开始执行命令之后。我要做什么来消除这个问题。

最佳答案

这是Kerberos/GSSAPI身份验证提示用户名和密码身份验证。
默认情况下,Kerberos/GSSAPIgssapi-with-mic是客户机和服务器在使用JSch客户机时首先选择的身份验证方法之一。解决方案是从JSch会话中的首选身份验证方法列表中删除gssapi-with-mic

session.setConfig("PreferredAuthentications", "publickey,password,keyboard-interactive");

不幸的是,您不能用当前的Citrus SFTP客户端实现设置此配置(请参阅问题https://github.com/citrusframework/citrus/issues/483)。
因此,您可以尝试在您的环境中禁用服务器上的gssapi-with-mic身份验证方法。或者可以尝试禁用本地配置文件中的身份验证
Host *
  GSSAPIAuthentication no

一般来说,您需要等待Citrus解决该问题,以便能够在SFTP客户端端点上的JSch会话中设置首选的身份验证方法。

09-25 20:58