Java Apache Mina Sshd SetPasswordAuthenticator未执行
我已经安装了Apache Mina Sshd SFTP服务器,并在其中添加了一些用户权限。为了进行测试,我使用Winscp,但我可以在不键入正确密码和用户名的情况下连接服务器。似乎从未调用过SetPasswordAuthenticator方法。因此,我想知道如何为我的Apache Mina Sshd设置用户名和密码用于启动安全服务器的SFTP服务器 我的服务器代码Java Apache Mina Sshd SetPasswordAuthenticator未执行,java,sftp,winscp,apache-mina,sshd,Java,Sftp,Winscp,Apache Mina,Sshd,我已经安装了Apache Mina Sshd SFTP服务器,并在其中添加了一些用户权限。为了进行测试,我使用Winscp,但我可以在不键入正确密码和用户名的情况下连接服务器。似乎从未调用过SetPasswordAuthenticator方法。因此,我想知道如何为我的Apache Mina Sshd设置用户名和密码用于启动安全服务器的SFTP服务器 我的服务器代码 sshd = SshServer.setUpDefaultServer(); sshd.setPort(2525);
sshd = SshServer.setUpDefaultServer();
sshd.setPort(2525);
sshd.setHost("172.xx.xx.xx");
sshd.setPasswordAuthenticator(new MyPasswordAuthenticator());
sshd.setKeyPairProvider(new SimpleGeneratorHostKeyProvider());
sshd.setSubsystemFactories(Arrays.<NamedFactory<Command>> asList(new SftpSubsystem.Factory()));
List<NamedFactory<UserAuth>> userAuthFactories = new ArrayList<NamedFactory<UserAuth>>();
userAuthFactories.add(new UserAuthNone.Factory());
sshd.setUserAuthFactories(userAuthFactories);
sshd.setCommandFactory(new ScpCommandFactory());
sshd.setKeyExchangeFactories(Arrays
.<NamedFactory<KeyExchange>> asList(new DHG1.Factory()));
sshd.setCommandFactory(new ScpCommandFactory());
sshd.setFileSystemFactory(new VirtualFileSystemFactory("C:/root"));
}
Maven依赖
<dependency>
<groupId>org.apache.mina</groupId>
<artifactId>mina-core</artifactId>
<version>2.0.9</version>
</dependency>
<dependency>
<groupId>org.apache.sshd</groupId>
<artifactId>sshd-sftp</artifactId>
<version>0.11.0</version>
</dependency>
<dependency>
<groupId>org.apache.sshd</groupId>
<artifactId>sshd-core</artifactId>
<version>0.14.0</version>
</dependency>
org.apache.mina
米纳岩芯
2.0.9
org.apache.sshd
sshd sftp
0.11.0
org.apache.sshd
固态硬盘磁芯
0.14.0
我是Apache Mina Sshd新手。感谢您的帮助。最后我发现了错误所在。通过删除下面的代码片段,您可以在服务器上执行Sshd.setPasswordAuthenticator
List<NamedFactory<UserAuth>> userAuthFactories = new ArrayList<NamedFactory<UserAuth>>();
userAuthFactories.add(new UserAuthNone.Factory());
sshd.setUserAuthFactories(userAuthFactories);
List userauthfactures=new ArrayList();
添加(新的UserAuthNone.Factory());
sshd.setUserAuthFactorys(UserAuthFactorys);
注意:如果您需要更高的安全性,您可以使用上面的代码片段并进行适当的实现,但只需添加sshd.setPasswordAuthenticator(新的MyPasswordAuthenticator())代码>您可以为服务器设置基本密码身份验证
List<NamedFactory<UserAuth>> userAuthFactories = new ArrayList<NamedFactory<UserAuth>>();
userAuthFactories.add(new UserAuthNone.Factory());
sshd.setUserAuthFactories(userAuthFactories);