Jsch拉取sftp文件链接异常
·
问题一、椭圆曲线(Elliptic Curve, EC)加密算法的私钥文件。
-----BEGIN EC PRIVATE KEY-----
-----END EC PRIVATE KEY-----
解决:
使用jsch最新版本进行访问,支持ecdsa-sha2-nistp25加密算法。
<dependency>
<groupId>com.jcraft</groupId>
<artifactId>jsch</artifactId>
<version>0.1.55</version>
</dependency>
问题二、密钥格式不匹配
最新版本的OpenSSH(7.8及更高版本)会以新的OpenSSH格式生成密钥,而旧版本的OpenSSH或某些工具可能不支持这种新格式。新格式的私钥以-----BEGIN OPENSSH PRIVATE KEY-----开头,而旧格式以-----BEGIN RSA PRIVATE KEY-----开头。
com.jcraft.jsch.JSchException: invalid privatekey: [B@4b2e8012
at com.jcraft.jsch.KeyPair.load(KeyPair.java:664) ~[jsch-0.1.55.jar!/:?]
at com.jcraft.jsch.IdentityFile.newInstance(IdentityFile.java:46) ~[jsch-0.1.55.jar!/:?]
at com.jcraft.jsch.JSch.addIdentity(JSch.java:441) ~[jsch-0.1.55.jar!/:?]
解决:如果您的私钥是新格式(OpenSSH格式),您可以尝试将其转换为旧格式(RSA格式)。
执行ssh-keygen命令后,您需要输入三次密码,分别是原密码、新密码、新密码(如果没有设置密码,则直接回车)
## It is required that your private key files are NOT accessible by others.
## This private key will be ignored.
chmod 600 /root/id_rsa
## 转换密钥格式
ssh-keygen -p -m pem -f /root/id_rsa
更多推荐

所有评论(0)