[問題] 使用Jsch ssh後再使用一次ssh的問題

看板java作者 (ywlin)時間13年前 (2012/11/08 22:30), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串1/1
大家好,目前遇到一個問題是有三台主機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
用 ssh public key 認證啊.
11/08 23:18, 1F
文章代碼(AID): #1Gcy8VdZ (java)