![](/img/trans.png)
[英]Remote File Transfer from one linux machine to another linux machine
[英]Using JSch to copy one file from remote machine to another remote machine
我已經看到很多JSch的例子,其中一個可以從本地復制到遠程機器,反之亦然。 如果我能夠為兩台遠程計算機提供登錄憑據,那么在JSch中是否可以從一台遠程計算機復制到另一台遠程計算機。
我試過以下代碼
JSch jsch=new JSch();
Session session=jsch.getSession(user1, host1, 22);
// username and password will be given via UserInfo interface.
UserInfo ui=new MyUserInfo(password);
session.setUserInfo(ui);
session.connect();
Session remoteSession = jsch.getSession(user2, host2, 22);
UserInfo ui2 = new MyUserInfo(password2);
remoteSession.setUserInfo(ui2);
remoteSession.connect();
// exec 'scp -f rfile' remotely
String command="scp -f "+lfile;
Channel channel=session.openChannel("exec");
((ChannelExec)channel).setCommand(command);
Channel channel2=session.openChannel("exec");
((ChannelExec)channel2).setCommand(command);
// get I/O streams for remote scp
OutputStream out=channel.getOutputStream();
InputStream in=channel2.getInputStream();
channel.connect();
channel2.connect();
從輸入流中讀取后掛起。 請讓我知道如何實現遠程到遠程復制。
關於我能想到實現這一目標的唯一方法是使用JSch發出原始SCP命令來執行從遠程主機A到遠程主機B的文件傳輸。為了做到這一點,你可能需要設置公共兩個主機(A和B)之間的密鑰驗證,因此在連接到遠程主機B時不需要以交互方式提供密碼。雖然我相信可以通過連接通道提供此密碼,但我只是不確定怎么樣。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.