问题标签 [apache-sshd]
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.
android - 如何在 Android Pie 上运行 Apache-Mina SSHD-Server (2.2.0)?
我正在尝试在 Android Pie (API 28.0) 设备上运行 Apache MINA SSHD 服务器 (v. 2.2.0)。我发现了各种关于它在 Android 4 设备上运行的帖子,但它们似乎都不能在我的 Android 9 设备上运行。所以我尝试自己实现它,但在服务器初始化时遇到了 ReflectionException/NoClassDefFoundError。
当我尝试使用 SshServer.setUpDefaultServer(); 设置服务器时;我得到这个例外:
从 Android 4 的一些较早的帖子看来,这是一个已知问题,解决方案是将 $useLibrary 'org.apache.http.legacy' 添加到 gradle 并添加到 manifest.xml。我这样做了,但仍然发生异常。
build.gradle 文件:
清单.xml
我的 Java 代码:
似乎旧版本有效,但我搜索了几天并没有找到最新版本的任何工作示例。有没有人有一个在Android 9上运行最新版本的Apache Mina SSHD(2.2.0)的工作示例(无需root设备)?
或者如果没有,Android Pie 是否有替代的 SSH 服务器(不是客户端 - 有很多)?
感谢您的任何帮助。
java - 如何在 Apache MINA SSHD SFTP 服务器中监听 Connection Abort 事件?
我已经使用 Apache MINA SSHD 版本 2.1.0 设置了 SFTPGateway。用户身份验证并建立连接后,我想在执行 PUT 操作时捕获/监听 Connection Abort 事件(通过按 Ctrl+C)。有人可以帮我吗?
我尝试在 AbstractSftpEventListenerAdapter 类中覆盖 public void closed(ServerSession serverSession, String remoteHandle, Handle localHandle, Throwable throw) 方法。但它不仅在文件完全上传并关闭以进行 IO 操作时调用,而且在文件完全上传之前连接中止时调用。所以我不能依靠这种方法来完成文件上传。
要求是在文件上传完全完成后触发一些操作,而不是在 PUT 操作期间中止连接并且文件上传未 100% 完成时触发。那么如何在 Apache MINA SSHD 服务器中捕获文件上传完成情况呢?
我相信早些时候在早期版本 0.13 和 0.14 中有一个接口 FileUploadAware 可以达到此目的。
如何在 PUT(上传)操作期间收听 Apache SSHD SFTP 中的 Connection Abort 事件?
java - Apache MINA SFTP 符号链接示例
我正在尝试设置一个与多个用户一起SFTP
使用的服务器apache sshd
,每个用户都有自己的主目录。我们希望使用符号链接向多个用户授予对文件夹的访问权限。
有人可以告诉我该怎么做吗?
我通过使用 mount 选项尝试了符号链接的替代方法,但是mtab
文件中每个挂载的条目在重新启动/重新启动机器时都会被删除。
java - A simple way to verify the existence of a file on the SFTP server in Java
I am writing an SFTP client using the Apache Mina SSHD library, specifically sshd-sftp 2.3.0
. I chose it instead of the SSHJ library, because it is possible to write a String
to a remote file directly, and there are also no unnecessary dependencies.
The task: when sending files to the SFTP server to make a backup copy of the previous file, if any.
I studied all the possibilities that the SftpClient
class provides, and among them I did not find an easy way to search for a file.
- There are
listDir
andreadDir
methods, they returnIterable <DirEntry>
, but I suspect that with a large number of files they will work slowly. - We can simply force a file to be renamed using the
rename
method, but in my case there can be many backup files, and we must first find a free file name.
The current solution is to get the state of the file. If there is no such file, then a SftpException
will be thrown, for example, "SFTP error (SSH_FX_NO_SUCH_FILE): No such file or directory". This message can be analyzed, and if the file is really not found, then just don't throw this exception further. Here is the code:
The main problem is that this solution is ugly.
However, on the Internet I found only similar solutions using libraries JSch and Trilead SSH-2 for Java.
Perhaps there is another, simpler and more competent way to check for a file on an SFTP server?
java - 如何使用 Apache MINA SSHD 阻止 SFTP 删除操作
我正在尝试使用 Apache Mina SSHD 创建自定义 sftp 服务器。到目前为止我的代码:
如您所见,我实现了自己的 SftpEventListener:
当我想删除文件时,它会执行我的删除和删除侦听器,但是删除操作会继续并且文件被删除。
有没有办法阻止这种情况发生?
感谢帮助!
java - 如何使用 Apache MINA SSHD 对嵌入式 SFTP 实施无密码身份验证
我正在尝试借助此示例Here使用 Apache MINA SSHD 实现多用户无密码嵌入式 SFTP 。但是当我尝试连接到服务器时,它总是需要密码。
我已将authorized_keys(公钥文件)放在项目内的 .ssh 文件夹中。
java - Apache MINA SSHD java.security.InvalidKeyException:SHA-1 摘要算法的安全强度不足以满足此密钥大小
我们正在使用 Apache SSHD mina 运行 SFTP 服务器。使用 Java 7,一切正常。但是对于 Java 8,当任何 SFTP 客户端尝试连接时,我们都会遇到以下异常。如何使用 Java 8 在服务器端解决此问题。客户端可以使用 RSA 或 SHA 算法。但是无论密钥大小和类型如何,服务器都必须同时处理。我正在使用 SimpleGeneratorHostKeyProvider。
java - 如何修复 java.net.SocketException:ubuntu 上的权限被拒绝
我正在使用 apache mina sshd 来生成 ssh 服务器,以便用户能够远程访问特定系统。
这是我的代码的一部分:
在 Windows 上运行此代码时,此代码看起来不错,但在 linux(Ubuntu 18.04)上,出现此错误:
我知道使用 1024 以上的端口号运行程序可能会解决这个问题,但我正在开发的应用程序的标准端口是 830。我该如何解决这个问题?它需要在我的防火墙或超级用户设置中进行任何配置吗?
kotlin - 如何在 apache SshServer 中设置每个用户的最大并发登录数
我需要限制 apache SshServer 中每个用户允许的并发会话。我发现了两个对这个功能的引用,但它们似乎已经过时了。
这是 2010 年的原始补丁:
https
://issues.apache.org/jira/browse/SSHD-95
我还发现了它的用法参考:
http: //apache-mina.10907.n7.nabble.com/如何设置-max-count-connections-in-sshd-service-td44764.html
它指的是 SshServer.setProperty() 方法。我正在使用 sshd-core 2.4.0,而 SshServer 没有这种方法,我看不到任何明显的替代品,也找不到任何关于它发生了什么或我应该如何做的文档现在这个。我仍然在 ServerFactoryManager 中看到 MAX_CONCURRENT_SESSIONS 键,所以我认为该功能仍然存在于某处,但我找不到需要设置它的位置。
这是服务器设置的样子(它用于 SFTP 服务器,但这对于 ahnd 的问题并不重要,我想):
java - 如何使用 apache SSHD ScpClient 上传/下载文件
我不知道我在设置 ScpClient 以发送/接收文件时做错了什么。
我正在使用 Apache MINA SSHD 库来启动 SSH 服务器并尝试将文件复制到/从中复制文件。
这是我的设置:
SSHServer.java
SSHClient.java
测试SSH.java
这是未注释下载行的 o/p(由于没有复制任何内容,因此失败):
这是未注释上传行的 o/p:
似乎无法从 InputStream 读取,但我不知道我做错了什么,顺便说一句,这是一台 Windows 机器。我需要为此在 Windows 中安装 scp 吗?
在启用调试日志记录时,可以看到这些日志:
但这只是由 ScpClient 类构建的,我应该做什么?