我正在尝试使用citrus对sftp服务器进行身份验证,我在这样的上下文文件中提供了usrname和密码
var express = require('express');
var router = express.Router();
/* GET users listing. */
router.get('/hospital-cubical-track-system', function(req, res, next) {
res.render('products/hospital-cubical-track-system', { title : 'Hospital Cubical Track System'});
});
router.get('/telescopic-iv-bag-hanger', function(req, res, next) {
res.render('products/telescopic-iv-bag-hanger', { title : 'Telescopic IV Bag Hanger'});
});
router.get('/wall-protection-system', function(req, res, next) {
res.render('products/wall-protection-system', { title : 'Wall Protection System'});
});
router.get('/hospital-blinds', function(req, res, next) {
res.render('products/hospital-blinds', { title : 'Hospital Blinds'});
});
router.get('/nurse-call-system', function(req, res, next) {
res.render('products/nurse-call-system', { title : 'Nurse Call System'});
});
router.get('/hospital-linen', function(req, res, next) {
res.render('products/hospital-linen', { title : 'Hospital Linen'});
});
module.exports = router;
程序正在执行时,我会得到一些提示,例如
<citrus-sftp:client id="client"
strict-host-checking="false"
port="22"
username="xxxxx"
password="xxxxxxxx"
timeout="1000"/>
键入用户名后,它会询问
"KEBROS USERNAME : "
然后在程序开始执行命令之后。我必须做些什么才能消除这个问题。
答案 0 :(得分:0)
这是Kerberos / GSSAPI身份验证,提示输入用户名和密码。
默认情况下,Kerberos / GSSAPI gssapi-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
身份验证方法。或者,您可以尝试使用
$HOME/.ssh/config
配置文件中禁用身份验证
Host *
GSSAPIAuthentication no
通常,您需要等待Citrus解决此问题,以便能够在SFTP客户端端点上的JSch会话中设置首选的身份验证方法。