【问题标题】:Apache Mina SSHD 1.0.0 set user directory & mappingApache Mina SSHD 1.0.0 设置用户目录和映射
【发布时间】:2016-01-17 05:13:18
【问题描述】:

尝试为使用 Java 中嵌入的 Apache Mina SSHD 的用户设置主目录。

这两种解决方案在 1.0 中都已弃用-
How to Set Root Directory in Apache Mina Sshd Server in Java
How to override getVirtualUserDir() in Apache Mina sshd-core version 0.14.0

在 0.14.0 中,以下工作正常:

sshd.setFileSystemFactory(new NativeFileSystemFactory() {
   @Override
   public FileSystemView createFileSystem(final Session session) {
      HashMap<String,String> map = new HashMap<String,String>();
      map.put("/", "/Users/someone/Documents");
      return new NativeFileSystemView(session.getUsername(), map, "/");
   };
});

据我所知:

sshd.setFileSystemFactory(new NativeFileSystemFactory() {
    @Override
    public FileSystem createFileSystem(Session session) {
        // What should I do here?
        return super.createFileSystem(session);
    }
});

【问题讨论】:

    标签: java sftp apache-mina sshd mina


    【解决方案1】:

    找到了。
    我不得不使用VirtualFileSystemFactory class

    这是结果:

    VirtualFileSystemFactory fsFactory = new VirtualFileSystemFactory();
    fsFactory.setUserHomeDir(userName, realDirectory);
    sshd.setFileSystemFactory(fsFactory);
    

    注意: 如果您使用的是 OS Xlinux,请不要忘记先chmod 您的路径。

    【讨论】:

      【解决方案2】:

      对于 v1.2.0(如果 Java 7)/v1.3.0(如果 Java 8)和 java.nio.file.Path 使用,解决方案可能是:

      sshServer.setFileSystemFactory(new VirtualFileSystemFactory(FileSystems.getDefault().getPath(rootDir)));
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-04-11
        • 2015-09-02
        • 1970-01-01
        • 2015-07-01
        • 2016-04-11
        • 2017-02-09
        • 1970-01-01
        • 2016-12-10
        相关资源
        最近更新 更多