ECDSA密钥指纹与Jsch不匹配

时间:2017-06-28 14:36:55

标签: java sftp jsch

我正在使用Jsch Library for SFTP。从我的终端,我已经对ftp机器进行了ssh,将ftp机器添加到known_host文件中。但是当我使用Jsch从Java连接到SFTP机器时,它无法找到主机,在Java和终端中为主机显示的ECDSA密钥指纹也不同。

但是我没有遇到任何使用pysftp从python连接到同一主机的问题。

如果主机ip相同,为什么Jsch会获得不同的签名?

我出于安全目的编辑了主机名。我从终端做了sftp并添加到已知主机。 From Terminal, Added it to known_hosts

这是java代码的片段,我用它连接到sftp。

String host = platformDetailMap.get(Constants.SFTPProps.HOST);
            String username = platformDetailMap.get(Constants.SFTPProps.USERNAME);
            String password = platformDetailMap.get(Constants.SFTPProps.PASSWORD);

            JSch ssh = new JSch();
            Session session = null;
            Channel channel = null;
            try {
                session = ssh.getSession(username, host, SFTP_PORT);
                session.setPassword(password);
//                java.util.Properties config = new java.util.Properties();
//                config.put("StrictHostKeyChecking", "no");
//                session.setConfig(config);
                session.connect();
                channel = session.openChannel(SFTP_CHANNEL_IDENTIFIER);
                channel.connect();
                ChannelSftp sftp = (ChannelSftp) channel;
                List<SFTPFile> fileList = new ArrayList<SFTPFile>();
                Vector<ChannelSftp.LsEntry> entryList = sftp.ls(path);

这产生以下异常。

In Eclipse when trying to connect to the same host

0 个答案:

没有答案