作者ywlin (ywlin)
看板java
标题[问题] 使用Jsch ssh後再使用一次ssh的问题
时间Thu Nov 8 22:30:53 2012
大家好,目前遇到一个问题是有三台主机A、B、C
现在想透过A主机使用Jsch连线到B主机,
连到B主机後再用ssh连线至C主机。
从A主机连到B主机时,可以透过Jsch设定帐号密码,所以没问题。
但是连线到B主机後,再ssh到C主机时,登入必须要输入密码,
可是ssh指令似乎没办法在指令上直接加上密码,
目前程式码像下面这样,
//建立session
JSch jsch=new JSch();
String hostB = "addressB";
Session session=jsch.getSession("root", hostB, 22);
session.setPassword("passowrd");
session.setConfig("StrictHostKeyChecking", "no");
session.connect(30000);
//设定,并建立channel
ChannelExec channel = (ChannelExec)session.openChannel("exec");
channel.setCommand("ssh addressC");
channel.setInputStream(System.in);
channel.setPty(true);
channel.setOutputStream(System.out);
channel.connect();
//利用System.in输入密码登入C主机
BufferedReader br = new BufferedReader(new
InputStreamReader(channel.getInputStream()));
String line = null;
while((line=br.readLine())!=null)
{
System.out.printf("%s\n", line);
}
channel.disconnect();
session.disconnect();
目前这样必须手动输入密码,才能登入C主机,请问各位前辈,
有办法在channel.setInputStream(InputStream in)
改成传入预先定义好的String或FILE吗?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.161.164.171
※ 编辑: ywlin 来自: 118.161.164.171 (11/08 22:34)
1F:推 qrtt1:用 ssh public key 认证啊. 11/08 23:18