尝试使用 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);
}
});
最佳答案
找到了。
我必须使用VirtualFileSystemFactory
类。
这是结果:
VirtualFileSystemFactory fsFactory = new VirtualFileSystemFactory();
fsFactory.setUserHomeDir(userName, realDirectory);
sshd.setFileSystemFactory(fsFactory);
注意:
如果您使用的是 OS X 或 linux,请不要忘记先chmod
您的路径。
关于java - Apache Mina SSHD 1.0.0 设置用户目录和映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33204547/