Java 如何使用ApacheMina SSHD实现对嵌入式SFTP的无密码认证

Java 如何使用ApacheMina SSHD实现对嵌入式SFTP的无密码认证,java,spring-boot,apache-mina,apache-sshd,Java,Spring Boot,Apache Mina,Apache Sshd,在这个例子的帮助下,我试图用ApacheMina SSHD实现一个多用户无密码嵌入式SFTP。但是当我试图连接到服务器时,它总是需要密码 SshServer sshd=SshServer.setUpDefaultServer(); sshd.setHost(“localhost”); 设置端口(2222); setKeyPairProvider(新的SimpleGeneratorHostKeyProvider()); sshd.setSubSystemFactorys(Collections.

在这个例子的帮助下,我试图用ApacheMina SSHD实现一个多用户无密码嵌入式SFTP。但是当我试图连接到服务器时,它总是需要密码

SshServer sshd=SshServer.setUpDefaultServer();
sshd.setHost(“localhost”);
设置端口(2222);
setKeyPairProvider(新的SimpleGeneratorHostKeyProvider());
sshd.setSubSystemFactorys(Collections.singletonList(新的sftpusbsystemFactory());
sshd.setPasswordAuthenticator(
(用户名、密码、会话)->username.equals(“测试”)和password.equals(“密码”);
Path key=Path.get(“.ssh/authorized_key”);
如果(keys.toFile().exists()){
sshd.setPublickeyAuthenticator(新授权KeysAuthenticator(密钥));
log.info(“文件存在…”);
}
sshd.start();
log.info(“SFTP服务器已启动”);
我已将授权密钥(公钥文件)放在项目的.ssh文件夹中


Hai,没有人有时间查看外部链接并检查。请将您的代码张贴在哪里,您的错误在哪里,或者您实现这样做的目的是什么,以及您尝试这样做的目的是什么。所以任何人都可以帮助你。嗨,我已经按照建议修改了这篇文章,我希望这能帮助任何人对这个问题有一个清晰的认识。@Mounirbelhniyen我是你提到的博客文章的作者。如果您按照博客文章中提供的步骤进行操作,我想我首先要研究的是授权密钥文件,可能是文件的内容没有正确复制。尝试重新生成公钥并将内容复制到目标文件。你发布的代码运行良好。另外,使用下面的命令查看sftp命令的详细输出,以进一步了解问题。sftp-vvv-oPort=2222test@localhost