为了账号安全,请及时绑定邮箱和手机立即绑定

使用 SSHJ 和 ed25519 进行 SFTP 上传遇到关键问题

使用 SSHJ 和 ed25519 进行 SFTP 上传遇到关键问题

绝地无双 2023-09-27 17:04:44
我尝试使用 ed25519 身份验证设置 SFTP 上传,但不断收到此错误:线程“main”中的异常 java.lang.UnsupportedOperationException:不知道如何解码密钥:ssh-ed25519这是我的代码:import java.io.File;import java.io.IOException;import net.schmizz.sshj.SSHClient;import net.schmizz.sshj.sftp.SFTPClient;import net.schmizz.sshj.userauth.keyprovider.OpenSSHKeyFile;import net.schmizz.sshj.xfer.FileSystemFile;import net.schmizz.sshj.transport.verification.PromiscuousVerifier;String username     = "scansionitesz"; String remoteDir    = "files";String remoteFile   = "prova_delega.pdf";String localDir     = "C:/Users/VERSIM/Desktop";final SSHClient ssh = new SSHClient();ssh.addHostKeyVerifier(new PromiscuousVerifier());ssh.connect(server);try {    File privateKey = new File(openSSHPrivateKey);    KeyProvider keys = ssh.loadKeys(privateKey.getPath());    OpenSSHKeyFile key = new OpenSSHKeyFile();    key.init("-----BEGIN OPENSSH PRIVATE KEY-----\n" +             "my_private_key\n" +             "-----END OPENSSH PRIVATE KEY-----",            "ssh-ed25519 my_public_key scansionitesz@tes"             );    ssh.authPublickey(username,key);    final SFTPClient sftp = ssh.newSFTPClient();    try {        sftp.put(new FileSystemFile(localDir + "/" + remoteFile), "/" + remoteDir);    } finally {        sftp.close();    }} finally {    ssh.disconnect();}我缺少什么?
查看完整描述

1 回答

?
一只甜甜圈

TA贡献1836条经验 获得超5个赞

我猜您正在使用一些不支持 Ed25519 密钥的旧版本 sshj。

从 0.15.0(2015 年 11 月)开始就支持它们。


查看完整回答
反对 回复 2023-09-27
  • 1 回答
  • 0 关注
  • 54 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信