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