当前位置: 首页 > 知识库问答 >
问题:

如何用Java在Apache Mina Sshd服务器中设置根目录

董康平
2023-03-14

我使用Apache Mina Sshd API在Java中启动了一个本地SFTP服务器,在SFTP客户端中使用Jcraft jsch API创建了我的SFTP客户端,我成功地启动了一个服务器,问题是我想编写一些单元测试用例来检查客户端是否可以将一些文件放入服务器的根目录中。目前我的SFTP服务器没有任何根目录,所以我想知道有什么方法可以设置服务器的根目录。

例如:C:\sftp我如何设置这个路径作为我的服务器根目录。这样客户端就可以在每次连接服务器时读写文件到它。谢谢。

public class SftpServerStarter {

    private SshServer sshd;
    private final static Logger logger = 
        LoggerFactory.getLogger(SftpServerStarter.class);

    public void start(){
        sshd = SshServer.setUpDefaultServer();
        sshd.setPort(22);
        sshd.setHost("localhost");
        sshd.setPasswordAuthenticator(new MyPasswordAuthenticator());
        sshd.setPublickeyAuthenticator(new MyPublickeyAuthenticator());
        sshd.setKeyPairProvider(new SimpleGeneratorHostKeyProvider());
        sshd.setSubsystemFactories(
            Arrays.<NamedFactory<Command>>asList(new SftpSubsystem.Factory()));
        sshd.setCommandFactory(new ScpCommandFactory());

        try {
            logger.info("Starting ...");
            sshd.start();
            logger.info("Started");
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            logger.info("Can not Start Server");
        }
    }
}

共有1个答案

岳嘉石
2023-03-14

在较新的sshd版本中,您可以使用org.apache.sshd.common.file.virtualfs.virtualFileSystemFactory并通过方法setFileSystemFactory将其提供给SSHServer实例。

片段:

VirtualFileSystemFactory fileSystemFactory = new VirtualFileSystemFactory();
fileSystemFactory.setDefaultHomeDir("home.directory");
sshd.setFileSystemFactory(fileSystemFactory)
 类似资料:
  • 问题内容: 我使用 Apache Mina Sshd API 在 Java 中启动本地SFTP服务器。在SFTP客户端中,我使用 Jcraft jsch API 创建我的SFTP 客户端。我成功启动了服务器。问题是我想编写一些单元测试用例检查客户端是否可以将一些文件放入服务器的根目录。目前我的SFTP服务器没有任何根目录,所以我想知道有什么方法可以设置服务器的根目录。 例如: C:\ sftp 我

  • 我使用PHP-S127.0.0.1:4242命令在本地主机上为php文件启动development server。但我想,我不应该在生产中使用这个东西。目前我正在尝试在VPS上设置我的网站,我不知道如何在端口4242上永远使用ssh启动php服务器。我知道,这可能是很愚蠢的问题,这是我第一次与真正的主持工作 如有任何帮助,我将不胜感激:)

  • 通过设置本地计算机、开发服务器、中间服务器或生产服务器作为测试服务器,测试动态网页或内容。 如果您计划使用服务器端语言(如 PHP)开发动态页,请设置一个测试服务器以便在您进行操作时生成并显示动态内容。 测试服务器可以是本地计算机、开发服务器、中间服务器或生产服务器。 要详细了解测试服务器的用途,请参阅 David Powers 的文章 Setting up a local testing ser

  • 问题内容: 有谁知道如何更改Apache服务器的文档根目录?我基本上想来自目录而不是。 编辑 我最终弄清楚了。有人建议我更改文件,但最终在其中找到一个文件,并将根目录从更改为,并且可以正常工作。 问题答案: 您需要更改文件中的设置。可能会出现类似 使用您喜欢的编辑器(我建议使用Vim)并查找并将其更改为。对于看起来像这样的设置,还要往下看一点: 您还需要将引号中的内容更改为新目录。这样,当用户发出

  • 我正在使用一个AmazonUbuntuEC2实例,它只有一个命令行界面。我想为该服务器设置UI,以便使用远程桌面工具进行访问。有没有办法将GUI应用于EC2实例?

  • 现在我有了server.cert和pkcs8_key.pem文件,我就这样创建了服务器: 类路径配置正确。 我得到的错误堆栈: