Sftp访问方式JSch

使用JSch访问Sftp有时候会报异常:reject HostKey,有两种方式可以解决该异常。

1.创建实现com.jcraft.jsch.UserInfo的实体类,且该实体类必须存在一个public型无参构造函数;

2.设置强制HostKey检查为no。

实现com.jcraft.jsch.UserInfo的实体类:

/**
 * 
 */
package sftp;

import com.jcraft.jsch.UserInfo;

/**
 * @author lxzqz
 *
 */
public class SFtpUserInfo implements UserInfo {

	/**
	 * 构造函数,此构造函数不可少
	 */
	public SFtpUserInfo() {
	}


	public String getPassword() {
		return null;
	}

	public boolean promptPassword(String arg0) {
		return false;
	}

	public boolean promptPassphrase(String arg0) {
		return false;
	}

	public boolean promptYesNo(String arg0) {
		return true;
	}

	public void showMessage(String arg0) {
	}

	@Override
	public String getPassphrase() {
		return null;
	}

}

 使用第一种方式连接Sftp和使用第二种方式连接Sftp的代码如下:

package sftp;

import java.util.Properties;

import com.jcraft.jsch.Channel;
import com.jcraft.jsch.ChannelSftp;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.Session;

public class Sftp {
	public static void sftpUserInfo() throws Exception{
		JSch js = new JSch();
		//sftp用户名、ip、端口
		Session session = js.getSession("test", "172.16.2.183", 10086);
		//sftp密码
		session.setPassword("test");
		//创建一个用户
		session.setUserInfo(new SFtpUserInfo());
		session.connect();
		Channel channel = session.openChannel("sftp");
		channel.connect();
		ChannelSftp cmd = (ChannelSftp)channel;
		//cmd各种命令操作sftp
		//释放资源
		channel.disconnect();
		session.disconnect();
	}
	
	public static void strictHostKeyChecking() throws Exception{
		JSch js = new JSch();
		//sftp用户名、ip、端口
		Session session = js.getSession("test", "172.16.2.183", 10086);
		//sftp密码
		session.setPassword("test");
		//设置强制HostKey检查为no
		Properties config = new Properties();
		config.put("StrictHostKeyChecking", "no");
		session.setConfig(config);
		session.connect();
		Channel channel = session.openChannel("sftp");
		channel.connect();
		ChannelSftp cmd = (ChannelSftp)channel;
		//cmd各种命令操作sftp
		//释放资源
		channel.disconnect();
		session.disconnect();
	}
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

链诸葛

真爱了。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值