好的,这是我的问题。
我正在本地工作站上工作。我在防火墙后面有一些机器,我需要从 java 代码登录到这台机器。为此,我想使用 JSch 库。如果我将这台机器的 ip 地址输入到网络浏览器,我将被重定向到防火墙登录页面,当我输入我的凭据时,我可以使用 ssh 使用以下代码登录到这台机器:
public void authenticate(String ip, String user, String password) {
JSch jsch=new JSch();
try {
Session session = jsch.getSession(user, ip, 22);
session.setPassword(password);
session.setUserInfo(new UserInfoImpl(password));
session.connect();
System.out.println("Yes!!");
session.disconnect();
} catch (JSchException e) {
e.printStackTrace();
}
}
private class UserInfoImpl implements UserInfo{
private String password;
public UserInfoImpl(String password){
this.password = password;
}
@Override
public String getPassphrase() { return null;}
@Override
public String getPassword() {return password;}
@Override
public boolean promptPassphrase(String arg0) {return true;}
@Override
public boolean promptPassword(String arg0) {return true;}
@Override
public boolean promptYesNo(String arg0) {return true;}
@Override
public void showMessage(String arg0) {}
}
但是我的程序也应该自动登录到防火墙。如果我在 Windows 命令行中使用 telnet(端口 23)而不是 ssh(端口 22),则可以从那里登录到此防火墙。
是否可以从 Java 代码(使用 JSch 或其他一些 Java 库)登录到此防火墙?