Tag: jsch

使用JSCH在远程服务器上获取MD5校验和

我正在编写一个应用程序,其中要求是将文件从远程SFTP服务器传输到本地计算机,反之亦然。 在文件传输期间,我想确保在传输过程中没有数据包丢失和损坏。因此想法是在传输之前在远程文件(驻留在sftp服务器上)上运行MD5校验和,然后启动传输过程。 传输完成后,在本地文件上运行md5并比较两个校验和。 我使用JSCH连接到sftp服务器,代码在java.But我不知道如何在驻留在SFTP服务器上的远程文件上运行md5。我的代码必须在传输之前在远程文件上运行MD5 place.Any想法如何实现这一点请。

使用JSch,有没有办法告诉远程文件是否存在而不执行ls?

使用JSch,有没有办法判断远程文件是否存在而不执行ls并循环遍历文件以查找名称匹配? 谢谢

有没有办法让maven scp旅行车在linux / mac / windows平台上保持一致?

鉴于关于scp / ssh和maven的文档很差,我尝试了不同的方法,基本上分为两大类:使用scpexe旅行车和scp旅行车。 通常它们在linux和mac上都没有问题,但在Windows上我从来没有找到让它在所有机器上运行的方法。 scpexe方法(安装完成putty并添加到路径后) – settings.xml配置: internal ****** ******* plink pscp scp方法 – settings.xml: internal ********* ********* ask 我也尝试将StrictHostKeyChecking设置为“no”,但是,除了安全风险之外,在特定机器上无效。 有人找到了在所有机器上一致使用内部ssh存储库的方法吗?

通过JSch进行SSH隧道连接

我的目标是连接到防火墙后面的服务器(主机)。 我可以通过连接到网络中的另一个服务器(隧道)然后SSH到此服务器来访问此服务器。 但是我无法通过JSch实现相同的场景。 我无法使用以下代码工作,我为此目的编写了这些代码。 如果我在这里做任何蠢事,请告诉我。 public class JschExecutor { public static void main(String[] args){ JschExecutor t=new JschExecutor(); try{ t.go(); } catch(Exception ex){ ex.printStackTrace(); } } public void go() throws Exception{ StringBuilder outputBuffer = new StringBuilder(); String host=”xxx.xxx.xxx.xxx”; // The host to be connected finally String user=”user”; String password=”passwrd”; int port=22; String tunnelRemoteHost=”xx.xx.xx.xx”; // The host […]

JSch问题 – 无法检索完整命令输出

我正在使用JSch连接到SSH并执行命令。 其中一个命令给出了很大的输出。 在终端中,如果执行命令,则必须按Enter键才能查看整个输出。 使用JSch我无法检索整个输出。 当我使用交互式终端登录时,命令输出在填满屏幕后停止并等待Enter 。 代码取自如何在String中获取jsch shell命令输出 : public class SshConnectionManager { private static Session session; private static ChannelShell channel; private static String username = “”; private static String password = “”; private static String hostname = “”; private static Session getSession(){ if(session == null || !session.isConnected()){ session = connect(hostname,username,password); } return session; } […]

Jsch或SSHJ或Ganymed SSH-2?

我需要连接到服务器(用户名,密码,主机) – 简单 输入3-10命令 – command =“dir; date; cd; dir”是否有更简单的方法?,不写20行:while(smtng){很多东西+神秘的打印到scr:D} 下载文件 – 简单 将另一个下载的文件写入同一个文件(添加不是owerride) – 任何想法如何? 所以要执行这些可增加的简单任务,如果您敢于使用Jsch(awsome文档),这似乎是不可能的,Jsch,sshj,Ganymed之间有选择任何建议吗? 神秘: 2)多个命令进入 4)在现有的txt文件中添加更多txt:D(可能还有内置命令)或不? /* just for download/owerride : sftpChannel.get(“downloadfile.txt”, “savefile.txt”);*/

使用Java查找SFTP最旧文件的文件大小和上次修改

我正在使用JSch从SFTP服务器获取文件,但我试图找到一种方法来只获取最旧的文件,并确保它当前没有被写入。 我想象自己这样做的方法是首先找到指定的远程文件夹中的哪个文件是最旧的。 然后我会检查文件大小,等待x秒(可能大约10秒,只是为了安全),然后再次检查。 如果文件大小没有改变,我下载文件并进行处理。 但是,我不知道该怎么做! 如果有人知道如何做到这一点,或者知道其他支持具有此内置function的SFTP(我知道Apache Commons,但只有FTPS),我们将不胜感激。 提前致谢。

使用Java中的JSch exec从ArrayList执行命令列表

使用JSch“exec”通道,我连接到远程服务器并执行命令。 我不能做的是执行存储在ArrayList中的命令列表。 我使用for循环将每个元素传递给.setCommand(elem); 但由于一些奇怪的原因,只有最后一个命令被执行。 ArrayList lists = new ArrayList(); lists.add(“hostname”); lists.add(“df -l”); Channel channel=session.openChannel(“exec”); for (String elem : lists){ ((ChannelExec)channel).setCommand(elem); } 完整代码 public class Exec{ public static void main(String[] arg){ try { JSch jsch=new JSch(); String host=null; if(arg.length>0){ host=arg[0]; } else{ host=JOptionPane.showInputDialog(“Enter username@hostname”, System.getProperty(“user.name”)+ “@localhost”); } String user=host.substring(0, host.indexOf(‘@’)); host=host.substring(host.indexOf(‘@’)+1); Session session=jsch.getSession(user, host, 22); UserInfo […]

使用“exec”频道进行JSch SCP文件传输

我是SCP协议和JSch的新手。 我必须通过SCP将文件从远程设备传输到Android。 服务器端开发人员拒绝告诉他们他们的设备,除了文件位置,以及可用于通过SCP访问它的root帐户。 这是我尝试的步骤。 确认使用JSch,我的Android客户端可以与服务器建立连接。 [完成] 确认使用JSch和ChannelExec对象,我可以发送ls命令并读取其输出。 [完成] 确认使用JSch和ChannelSFTP对象,我可以从设备传输文件。 [失败] (3)失败的原因似乎是没有为SFTP配置设备(服务器)。 制造商继续说下面的ssh上的命令有效: scp root@192.168.5.1/usr/WS026.jpeg [targetPath] 他们说上面的命令会将第一个参数复制到客户端的目标路径。 那么,替代使用SFTP, 我如何在JSch通道“exec”中实现它?

从ssh命令以与创建它的顺序相同的顺序记录stdout和stderr

短版本:是否可以通过ssh以与远程主机上输出的顺序相同的顺序在远程执行的命令的本地端记录stdout和stderr? 如果是这样,怎么样? 长版: 我试图以与远程命令输出的顺序相同的顺序记录远程执行的SSH命令(使用Jsch)的标准和错误输出。 换句话说,如果远程命令将“a”写入stdout,然后将“b”写入stderr,然后将“c”写入stdout,我希望客户端(本地)端的日志读取: 一个 b C 以下是我到目前为止的情况。 它与我想要的相对接近,但我认为很明显它不能保证客户端的输出顺序正确。 public int exec(String strCommand) throws ExceptionUnableToExecCommand { JSch jsch = new JSch(); Session session = null; ChannelExec channel = null; try { session = jsch.getSession(user, host, 22); UserInfo ui = new cyclOps.jsch.UserInfo(password); session.setUserInfo(ui); session.connect(); channel = (ChannelExec) session.openChannel(“exec”); channel.setCommand(strCommand); channel.setInputStream(null); InputStream in = channel.getInputStream(); InputStream […]