通过JSch

问题描述 投票:0回答:1

对SSH的需求通过Jumphost到达目的地主机。在jsch Jumphosts示例中尝试了同样的尝试。 Session[] sessions = new Session[2]; Session session = null; sessions[0] = session = jsch.getSession(getUserName(), "jumphost1.com", 22); session.setPassword(getHostPassword()); UserInfo userInfo = new UserInfo(); userInfo.setPassword(getHostPassword()); session.setUserInfo(userInfo); Properties prop = new Properties(); prop.put("StrictHostKeyChecking", "no"); prop.put("PreferredAuthentications", "publickey,keyboard-interactive,password"); session.setConfig(prop); session.connect(); String host = "host1.com"; int assignedPort = session.setPortForwardingL(0, host, 22); LOGGER.info("Jump host the {} of agent {} and port forwarding {}", i, host, assignedPort); sessions[i] = session = jsch.getSession(getUserName(), "127.0.0.1", assignedPort); session.setPassword(getHostPassword()); userInfo = new UserInfo(); userInfo.setPassword(getHostPassword()); session.setUserInfo(userInfo); session.setHostKeyAlias(host); session.connect();

在连接到目标主机时,请在下面的异常:

Caused by: com.jcraft.jsch.JSchException: reject HostKey: 127.0.0.1 at com.jcraft.jsch.Session.checkHost(Session.java:799) at com.jcraft.jsch.Session.connect(Session.java:345) at com.jcraft.jsch.Session.connect(Session.java:183)

我正在尝试登录主机
host1.com

login至
jumphost1.com

ssh
    jumphost1.com
  • 执行
  • host1.com
  • 中的命令
    
  • 您通过kimphost连接的代码正确。
    
    唯一的问题是,您的本地主机密钥存储库包含第二个主机的主机密钥,而不是从真实(第二)主机中获得的主机密钥。 您实际上似乎没有对安全
  • 进行审核,因为您为jumphost会话设置了
host1
java unix ssh jsch portforwarding
1个回答
5
投票
正确地不做!)。但是您在第二届会议上没有做同样的事情,因此错误。

还请参见如何解决Java Unknownhostkey,同时使用JSCH SFTP库?

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.