[問題] 使用Jsch ssh後再使用一次ssh的問題
大家好,目前遇到一個問題是有三台主機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)
推
11/08 23:18, , 1F
11/08 23:18, 1F