私の目的は、JCraftのJSchライブラリを使用してリモートでコマンドを実行することです。コードスニペットを以下に示します。私はjava.net.ConnectException
を得ています。私のここでの目的は、私のシステムからリモートでバッチファイルを実行することです。JSch経由でのリモート実行時のConnectException
コードスニペット:
String command = "ipconfig"; //Or any execution command
String host = "10.10.*.*";
String user = "username";
String password = "password";
JSch jsch = new JSch();
Session session = jsch.getSession(user, host, 22);
Properties config = new Properties();
config.put("StrictHostKeyChecking", "no");
session.setConfig(config);;
session.setPassword(password);
session.connect();
session.setHost(host);
UserInfo userInfo = new MyUserInfo();
session.setUserInfo(userInfo);
Channel channel = session.openChannel("exec");
((ChannelExec)channel).setCommand(command);
channel.setInputStream(null);
((ChannelExec)channel).setErrStream(System.err);
InputStream input = channel.getInputStream();
channel.connect();
System.out.println("Channel Connected to machine " + host + " server with command: " + command);
try{
InputStreamReader inputReader = new InputStreamReader(input);
BufferedReader bufferedReader = new BufferedReader(inputReader);
String line = null;
while((line = bufferedReader.readLine()) != null){
System.out.println(line);
}
bufferedReader.close();
inputReader.close();
エラー:
com.jcraft.jsch.JSchException: java.net.ConnectException: Connection timed out: connect
at com.jcraft.jsch.Util.createSocket(Util.java:349)
at com.jcraft.jsch.Session.connect(Session.java:215)
at com.jcraft.jsch.Session.connect(Session.java:183)
at RemoteExecution.execute(RemoteExecution.java:125)
at PutFilesToUnix.main(PutFilesToUnix.java:127)
Caused by: java.net.ConnectException: Connection timed out: connect
at java.net.DualStackPlainSocketImpl.connect0(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at com.jcraft.jsch.Util.createSocket(Util.java:343)
... 4 more
スタンドアロンSSHクライアントを使用して同じマシンから '10.10。*。* 'に接続できますか? –
接続の試行時にコードが壊れます。 PuTTYを使用して同じ資格情報で手動で接続できることを確認します。 –
はい、cmdからIPにpingを実行すると応答を受け取ることができます。それはあなたが求めていたものではない場合、私の不愉快なことを許してください。 –