我正在尝试使用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会话中设置首选的身份验证方法。