且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

获取"com.jcraft.jsch.JSchException:验证失败"–但"ssh"可以使用公钥身份验证登录

更新时间:2023-12-04 23:34:04

您的OpenSSH ssh 命令自动使用您在 .ssh 文件夹中为OpenSSH配置的私钥.

Your OpenSSH ssh command automatically uses the private key you have configured for OpenSSH in your .ssh folder.

JSch不会自动使用OpenSSH密钥.您必须明确告诉它要使用什么密钥.
请参见我们可以使用JSch进行基于SSH密钥的通信吗?

JSch won't automatically use OpenSSH keys. You have to explicitly tell it what key to use.
See Can we use JSch for SSH key-based communication?

还请注意,JSch不支持OpenSSH所支持的所有密钥格式.
请参见使用JSch时

Also note that JSch does not support all key formats that OpenSSH do.
See "Invalid privatekey" when using JSch

强制性警告:请勿使用 StrictHostKeyChecking = no 盲目接受所有主机密钥.那是一个安全漏洞.您无法防御 MITM攻击.有关正确(安全)的方法,请参见:如何在使用JSch SFTP库时解析Java UnknownHostKey?

Obligatory warning: Do not use StrictHostKeyChecking=no to blindly accept all host keys. That is a security flaw. You lose a protection against MITM attacks. For the correct (and secure) approach, see: How to resolve Java UnknownHostKey, while using JSch SFTP library?