问题标签 [jsch]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Jsch - 一个会话多个通道
我设法通过 ssh 和 Jsch 执行了一个命令,但是当我尝试执行第二个命令时它失败了
对于调试,我将这个问题归结为以下几行:
这主要是官方的 Exec 示例,但这给了我这个输出:
第一个命令成功执行第二个没有。
有任何想法吗 ?
java - 为什么这个 SSH 客户端使用“zDonez”?
我正在开发一个应用程序,该应用程序将使用JSch通过 SFTP 在服务器上获取文件。
文档不多,但我发现了这篇(法语)博客文章:Un client SSH pour Java。
我只是可以弄清楚TERMINATOR
变量的用途:
为什么这样用"zDonez"
?
java - 如何捕获Java中“从未抛出”的异常
我有以下代码块,它使用在http://www.jcraft.com/jsch/找到的 JSCH 库
我知道当 f 指定的文件在本地找不到时 put 方法可以抛出 FileNotFoundException,但是 eclipse 告诉我 catch 块不可访问,并且永远不会抛出该异常。当我更改为:
我得到:
有任何想法吗?
java - 如何使用 JSch 访问 FTP 服务器?
我在本地 Windows 7 机器上安装了 FileZilla FTP 服务器。我还在同一台机器上安装了 FileZilla FTP 客户端。他们两者之间的连接成功,确认服务器和客户端伙伴关系存在。
我编写了一个快速而肮脏的 Jsch 小程序,用于连接到 FileZilla FTP 服务器,下面是该程序:
我尝试运行这个程序,下面是 FTP 日志:
(000033)9/12/2011 13:08:53 PM -(未登录)(127.0.0.1)> 已连接,正在发送欢迎消息...
(000033)9/12/2011 13:08:53 PM - (未登录)(127.0.0.1)> 220-FileZilla 服务器版本 0.9.39 测试版
(000033)9/12/2011 下午 13:08:53 -(未登录)(127.0.0.1)> 220-由 Tim 编写Kosse (Tim.Kosse@gmx.de)
(000033)9/12/2011 13:08:53 PM - (未登录) (127.0.0.1)> 220 请访问 http://sourceforge.net/projects/filezilla /
(000033)9/12/2011 13:08:53 PM -(未登录)(127.0.0.1)> SSH-2.0-JSCH-0.1.44
(000033)9/12/2011 13:08:53 PM -(未登录)(127.0.0.1)> 500 语法错误,命令无法识别。
(000033)9/12/2011 13:09:54 PM -(未登录)(127.0.0.1)> 421 登录时间已过。关闭控制连接。
(000033)9/12/2011 13:09:54 PM -(未登录)(127.0.0.1)> 已断开连接。
我不明白为什么 JSch 程序发出SSH-2.0-JSCH-0.1.44
命令,然后通信被拒绝。我们如何避免这种情况?
sftp - JSch不关闭sshd
有没有人看到 JSch 在哪里打开 sshd 会话?
我有一个执行常规 SFTP 连接的 java 客户端(它每隔一小时轮询一次),它似乎留下了一个 sshd 会话。这些最终会随着时间的推移而累积,并导致我们在操作系统中出现“打开的文件过多”异常(对于感兴趣的人来说,它达到了每个进程的限制(1024))。
在我的客户端中,我关闭了 SFTPChannel,然后是 Channel(实际上是冗余的,因为关闭 SFTPChannel 会关闭 Channel),最后是 Session,所以我很确定我正在正确清理(我可以看到我有一个“断开连接”对于每个“连接”,所以他们确实结婚了)
php - 让服务器通过 SSH 发送邮件
我编写了一个程序(在 Android 中,客户端和 PHP,服务器端)通过 HTTP 将文件上传到服务器。由于各种原因,我不得不更改系统以在 SSH 中执行所有操作(出于安全考虑)。
我已经设置了基础知识(在 Android 上使用 jsch)。但我想实现 PHP mail() 函数的等价物。当文件上传时,原来我的PHP文件会自动从服务器发送一封邮件到某个地址。
我正在努力寻找一种在服务器上的外壳中实现此功能的方法。所以问题是,如何在 SSH 中自动从服务器发送电子邮件?
编辑:忘了提到服务器是 CentOS。
java - 如何使用 JSch 执行多项操作
我是 SSH 和 JSch 的新手。当我从客户端连接到服务器时,我想做两个任务:
- 上传文件(使用
ChannelSFTP
) - 执行命令,例如创建目录和搜索 MySQL 数据库
目前我使用两个单独的 shell 登录来执行每个任务(实际上我还没有开始编写 MySQL 查询)。
对于上传相关代码是
对于我的命令
我应该在第一个频道之后断开会话然后打开第二个频道吗?或者完全关闭会话并打开一个新会话?正如我所说,我是新手。
ssh - gerrit 到 github 复制:jsch 问题
尝试设置从 gerrit 到我的 github 存储库的复制。获取此堆栈跟踪:
[2011-09-20 00:11:58,470] 错误 com.google.gerrit.server.git.PushReplication:无法复制到 git@github.com:myuser/myrepo.git
org.eclipse.jgit.errors.TransportException:git @github.com:myuser/myrepo.git: Session.connect: java.net.SocketTimeoutException:
在 org.eclipse.jgit 的 org.eclipse.jgit.transport.JschConfigSessionFactory.getSession(JschConfigSessionFactory.java:138)读取超时
。 transport.SshTransport.getSession(SshTransport.java:121)
在 org.eclipse.jgit.transport.TransportGitSsh$SshFetchConnection.(TransportGitSsh.java:248)
在 org.eclipse.jgit.transport.TransportGitSsh.openFetch(TransportGitSsh.java:147 ) )
在 com.google.gerrit.server.git.PushOp.listRemote(PushOp.java:358)
在 com.google.gerrit.server.git.PushOp.generateUpdates(PushOp.java:312)
在 com.google.gerrit.server.git.PushOp.pushVia(PushOp.java:258)
在 com.google.gerrit.server .git.PushOp.runImpl(PushOp.java:213)
在 com.google.gerrit.server.git.PushOp.run(PushOp.java:166)
在 java.util.concurrent.Executors$RunnableAdapter.call(Executors.java :441)在 java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask 的 java.util.concurrent.FutureTask.run(FutureTask.java:138)的
java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) 。访问$301(ScheduledThreadPoolExecutor.java:98)
在 java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:206)
在 com.google.gerrit.server.git.WorkQueue$Task.run(WorkQueue.java:324)
在 java.util.concurrent.ThreadPoolExecutor $Worker.runTask(ThreadPoolExecutor.java:886)
在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
在 java.lang.Thread.run(Thread.java:662)原因:com.jcraft.jsch.JSchException:Session.connect:java.net.SocketTimeoutException:在 org.eclipse.jgit.transport
的 com.jcraft.jsch.Session.connect(Session.java:504)
处读取超时。 JschConfigSessionFactory.getSession(JschConfigSessionFactory.java:128)
我的配置文件如下:
复制配置:
安全配置:
.ssh/配置:
我试着跑步
并且能够“点击”github,因此可以导入密钥,不确定问题是什么,任何建议表示赞赏。
ant - Ant SCP 任务不起作用 - 我可以使用 cygwin 进行 scp
请为我在工作中面临的问题提供您的专家选项。
Ant SCP 任务不起作用 - 我可以使用 cygwin 进行 scp。
本地环境:windows 7 64 位,Jdk 1.6.0.24,Ant-1.8.2(获取 ant 可选依赖项),maven 2(使用 ant 运行插件),jsch-0.1.44 远程环境:VM Labmanager 4.0,Windows Server 2008 - R2,SSH-2.0-OpenSSH_5.8,JDK 1.6.0.24
我已将密码验证设置为 yes 并在远程主机上重新启动 sshd。
Maven 目标如下。(顺便说一句,我也执行了相同的 ANT 目标,因此 Ant 和 Maven 使用 jsch-0.1.44 和 jsch-0.1.42 给出相同的结果)
堆栈跟踪如下:
/li>同样在 sshd 日志上,我看到它说客户端正在使用 JSCH-0.1.38,而客户端正在使用 jsch-0.1.44,我在任何地方的 ant lib 或 mvn 存储库中都没有 JSCH-0.1.38。
/li>我热衷于获得密码身份验证而不是密钥身份验证,因为这是一个自动化项目,VM 映像为每次运行创建。
问候, gnaval
java - 如何在 java (jsch) 中向/从 SSH 隧道发送和获取数据?
我是 SSH 隧道的初学者,我正在尝试找到一种在主机和服务器之间实现 SSH 隧道的方法,通过这个隧道,我想发送和获取数据。我在网上搜索过,我发现“jsch”可以帮助我实现隧道。问题是因为在http://www.jcraft.com/jsch/examples/上没有足够的评论,所以我不明白该怎么做。如果你们中的一个知道怎么做,你能解释一下吗?或者,如果您有一小段代码,您能否发表一些评论?
非常感谢大家