わかりましたので、ここに私の問題があります。
私はローカルワークステーションで作業しています。ファイアウォールの背後にマシンがあり、Java コードからこのマシンにログインする必要があります。これを行うには、JSch ライブラリを使用したいと思います。このマシンの IP アドレスを Web ブラウザに入力すると、ファイアウォールのログイン ページにリダイレクトされます。資格情報を入力すると、次のコードを使用して 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 コマンド ラインから ssh (ポート 22) の代わりに telnet (ポート 23) を使用すると、そこからこのファイアウォールにログインできる可能性があります。
Java コードから (JSch または他の Java ライブラリを使用して) このファイアウォールにログインすることは可能ですか?