我使用客户端签名的公共密钥连接到SFTP。在命令行中,所有功能均正常运行。
另一方面,通过JSCH Librairy,我收到一条消息错误:“验证失败”。
我的代码在另一台服务器上正常工作,或者公共密钥未签名
使用的jsch版本是:0.1.55
我的连接设置如下
JSch jsch = new JSch();
jsch.addIdentity(sftpSetting.getPrivateKey());
session = jsch.getSession(sftpSetting.getUser(), sftpSetting.getServer(), sftpSetting.getPort());
session.setConfig("StrictHostKeyChecking", "no");
session.setConfig("PreferredAuthentications", "publickey");
session.connect(sftpSetting.getConnectionTimeout());
// Initializing a channel
Channel channel = session.openChannel("sftp");
channel.connect(sftpSetting.getConnectionTimeout());
channelSftp = (ChannelSftp) channel;