![](/img/trans.png)
[英]How to Set Root Directory in Apache Mina Sshd Server in Java
[英]Apache Mina SSHD 1.0.0 set user directory & mapping
尝试使用Java中嵌入的Apache Mina SSHD为用户设置主目录。
两种解决方案均在1.0 in-
如何在Java中的Apache Mina Sshd Server中设置根目录
如何在Apache Mina sshd-core版本0.14.0中覆盖getVirtualUserDir()
在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
首先你的路径。
对于v1.2.0(如果是Java 7)/ v1.3.0(如果是Java 8)和java.nio.file.Path用法,解决方案可能是:
sshServer.setFileSystemFactory(new VirtualFileSystemFactory(FileSystems.getDefault().getPath(rootDir)));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.