2
下面同時使用「EXEC」和「SFTP」渠道是代碼片段如何JSch在同一時間使用一個會話
JSch jsch = new JSch();
session = jsch.getSession(SFTPUSER,SFTPHOST,SFTPPORT);
session.setPassword(SFTPPASS);
java.util.Properties config = new java.util.Properties();
config.put("StrictHostKeyChecking", "no");
config.put("PreferredAuthentications","publickey,keyboard-interactive,password");
session.setConfig(config);
session.connect();
連接到我需要切換到root才能複製會話後一個文件(因爲沒有啓用權限,也沒有可以直接root登錄的選項)。
channel = session.openChannel("exec");
((ChannelExec) channel).setCommand("dzdo -iu root");
,現在我可以複製文件
channel = session.openChannel("sftp");
channel.connect();
channelSftp = (ChannelSftp)channel;
channelSftp.cd(SFTPWORKINGDIR);
System.out.println("connected successfully");
channelSftp.put(FILETOTRANSFER, SFTPWORKINGDIR);
我在這裏同時使用「執行」和「SFTP」頻道,但它不是爲我工作。任何幫助如何運行一個命令,然後使用「sftp」複製文件?
請勿使用'StrictHostKeyChecking = no'! –
請注意:「不適合我」不是真正有用的描述!閱讀[mcve] - 你總是想要包含詳細的問題描述! – GhostCat