jsch密钥连接远程Linux报错com.jcraft.jsch.JSchException: invalid privatekey: [B@277050dc

jsch密钥连接远程Linux报错,信息如下:

Exception in thread "main" com.jcraft.jsch.JSchException: invalid privatekey: [B@277050dc
	at com.jcraft.jsch.KeyPair.load(KeyPair.java:664)
	at com.jcraft.jsch.KeyPair.load(KeyPair.java:561)
	at com.jcraft.jsch.IdentityFile.newInstance(IdentityFile.java:40)
	at com.jcraft.jsch.JSch.addIdentity(JSch.java:407)
	at com.jcraft.jsch.JSch.addIdentity(JSch.java:388)
	at com.scc.nanny.ssh.SSH.<init>(SSH.java:59)
	at com.scc.nanny.ssh.SSH.main(SSH.java:124)

 主要原因是生成密钥的时候使用的openssh版本过高导致,其生成的密钥类似如下:

-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAACmFlczI1Ni1jdHIAAAAGYmNyeXB0AAAAGAAAABDRomEs9d
Av8l4J6WvCkc3NAAAAEAAAAAEAAAEXAAAAB3NzaC1yc2EAAAADAQABAAABAQDD1C48/OJ3
wlBM60pV5bkeoaYPxxmul56E4k/0efMhWzsvq89texmpQ3AgZYaOXsUMztHmOxlr5JPLkP
wAkZcU0PvCztU4uZVOY6+cztlFoTq5wXZ9XBRE6dlsUeEZzs9c++kGvkaCm/IhExnQTUAy
5B2cMWHwTL88dFdxyY4vd6HG3n+JLJoCPQnG5VGSNBr2+DIc6Fll2ZyJhEA5zW4y+Ps26g
GUIYIg7fueiz4MFgKE6t6GFcEr4BBqvNBOAEuHgAggH0gs2jQ7go5/huf98guQAb+u22cQ
oGjHgoJc+iMbo+ahs6x6jVPMWB4p5kApPrp5cX/f+XE/AmScUwnTAAAD8O2iFuYxKJ2kNU
jd52P4FeH7WC/JLjmBo1d3MfR2pJGEODsIlvAihz0I2IEofHmxLg5HSx9p33aFdQZQ7o5c
ZDA7HKQ/6BPuCL0bvQA+Gu5gYp5KuNBGJlSTQ3m3khsvIp7eRkKvvt4UxGWPakL7ahlnyb
eFcJsB+dnyDJ5QCWVer2uEnPYqd+7p6vav/mrQyJdpjX9tMkMjo77UoPzSvXxtw4kxdsJe
czgDvMSp/p2MXNQK7biCzhqAZ0qZh0fc5UCc37RA72U9ks6UawtlM3Gd0OahvcoVGLa0GG
UDm8A7Hv5npS1GHyXGoJkZjUmbWwGuqoQQxjyRmBecjm/XNV8pJOqMRs7JW40WXeqrCysR
ck3WhE8V1IcBmAFbkZ2TprYwTpHRz4hI5OHrM6bluL8Zgx9hQkm8zpYktq9qQVThT9uo3/
9VWjzCxtfzg9YfWejC86ZvTt+Jl4QumGTCaLwyfPcEO96mSfIVbia14Izot2gv2cMiPHQU
dQywZSCyojMPwl68CuG/aBjLyXGyHSU+rDKJx4zZ2BDomv910+XU+ZfnmUW6JUjzKYuaiP
qceSq8nO9XR88p1kwQID7ykdS01fiIXyqEtuEGl41alCJVAw7U8PQBpshyGlwMtY2Q+0KL
XxhrWqPUeEDlH5axRuJ7ECKBZ6EfL47pLwUOnFoTqJtoBzYlz1vi4FL2ctr7hbsJJpDa0l
Tt6NbRHmhTTlaA/Qrc/hTATXenR+GYieBfvDFxYqLwNybi4haOWlJWZj7RVl45Mv3zEbxE
TJNaQCirQ1rjOdXqw5l+Nx6UDborDfurodeYX/JQ4Rcr29a+zpJ+iW1/6FmtFj+KzmTtqS
THEY8sJaqBK+adIxYnhlrCMM+vk+wgu8jDo27pp65KlCTYffyGGzWvZhF5UXrub4sl7PKy
1IWbdE08SbNW8aKpiLcps6as0Q/QJ66rR9WQit8AwD2U1XZ82EbdglbIICI3bvf4MI0e0/
ARaGxZAEa91q0CeXok1FFoU13ZEUxrMunbba3aR3mZIdrPUV4s2Co+MUAlMSUPtmzV2/za
YxVUpEvhbNqxPa6wNGaG72j++YLVn51amdP3bZAGTbGWqfBVYxUVrspWpoczpIiwUSZ5YZ
ad+9e3zSuCNeaJzEg1uSbIg4rAZ++QzX7Boq9FBfHqTNOofbJrc1+obs+ZmAg5zIX28l+d
u9wzkRdoBu+xrZyHTnpkJ7WSXJ1XxVi6yMKqYWHpaaVJ6mZzgyoSYAb8vl0GfJLSWw8WHm
J4vulabMBLFB9BjQYkOPXLShKpTnynFPMoLAdDG8h4Tf9XTBUStp1yXDUryveabJEgnRIW
/g==
-----END OPENSSH PRIVATE KEY-----

    而以前的版本生成的密钥类似如下: 

-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: AES-128-CBC,749E5AFD6F06C22EF6FD3AECCB6E540B

FwOlFOtCM+JH3EG7gzDOffkwLysiDCucdUeDZaK08rFSWzKpMwfPD/AZKNi0dqZR
1M63kFFuZvHWvtlTUvHcm2UqqupndnkSm+ShLDo8osczfp+iQJkgHRdZ6KSJ72FL
12R34pkN9qAIUQUTIzQvQm8f3D9dYUmUSZk5v5WvELYgar+RsdV+6ejZS0s+aHeN
2Rsi5vgeEjbRcb6o6qF/tUAH6mY+9pkBUIgJR8bIuHW/YudpUy9YAspiDL2pJwYO
0eG+Co9KBJkJIiKlvm9zmH9yAjX+o3vcDqlOPsOuTEzON4AFZKb6OwKO7m3y6+wC
P/oEdfsGtWQL33vSfNe04fFRFkQ06wDQ/eaObG0vgPZCrZT2dfrI3eUs76nzCb84
GeM7+hrEFeijfni3BfqhFZ9QG0fuudYmliK3A9vJzW2DNMAM9ZR4j4VGVfmwCdG3
GiRdxxG6TA8rQuAXEtEgDkI9AtIU3fo/kaC3fD2weVVVN8Mpmr1yCdMxgdESoRfM
Sgg0v6/XG4sCtjxKNhDrLF3LjKAV5kV+zS34f1ycYqfHijEVXcV8rRTrys6ieIqq
GtCVUaMUh7LWWRlQ1uRUMIW39OpW8P/Q/5Syst8plvzBjSX/pUPj+0O4nJLsVD4E
1Jr5RDymNB/7IlSrdEycMKhz/WShteQ3JV++rv3wheRfuTQiuZUTGQCSSkwv1G7s
IP68Cdm4NZhKZUN3AcoMOWf9DsfDy2uXFUYSqWtu2GtRcmfGT1v+B148uk6WpYV6
0X5dRtj36/uM4tNoaED9SG9FkvKdbb15PyYCWmtmeZjo4MLjrxELePsPJSl85Ifc
Ul3WfhHd3Iz1Jyd5ZApNWSXKOGVnc1Zu/0zrhbY7lrUBCKK4rASLL/ZtUQNaPXYi
9sBPZ1B4dga3VuTyoUqN999rl+nbM/66ckYEqTsfoNiKvyStF5Nm6Faf9Ez0fZT9
1VQlUvCvSLhA7NLnRDsAyG1ZOYfY7itZKLvCtglVSoNWgOv6I2wn+f2bs4hXZ2wR
fYkUApMLH9t1IM9JCZct5Jfpok5KmF9kN7Fa510EEnuuJK03xcoi0GmSUu2yGN4k
1SExm2zmsUHP+4HfTmPv848KhFZbs5VLSJ+cJSZKjyK3EoNvM4YUQuWm0IRm3bFB
/sYETXnMY90HDhR7fjG0H074x0wgk+9Wd6rdqkfbizYEz3yvypAEPcB0lCBZQsMF
uyvDPshdokhwlmGJXN6uh7SUlEKUCMpJE0sSCVRD3uVYg0ErAOa+1BuIJKOSCp0D
CCElu0gnnKctvTK+aW/l011uzw6Ck0KgUu+KU9SfWmuTWNnsIFe8HfxIyiIDblcz
lqrgB2wks6hdi3Ealtb4B+mseVpeRJhiNWJ2DIiXo4CxD6NZffiUW5BXNpNcDyuS
zCQwXQ4eduMR+qy41aHac6FiChvauXe09QNpANlxxlCIC6OVa/priFnLx5X849tn
xiCnjGVO0p/altdM2G5Z5LGSMu/rjUK6YxBdi8oRYGhbAtgVOkdicoAFIOs+spVx
dAzGWpRtuUIlIB97oXloovzwyMZGXWRy6yhLWJlpSYKSADXoEIQ8NuN+e33UEzeq
-----END RSA PRIVATE KEY-----

    jsch版本是0.1.54,这个版本是解析不了最新版的密钥的。

我的解决方案:

使用:

<dependency>
    <groupId>com.github.mwiede</groupId>
    <artifactId>jsch</artifactId>
    <version>0.2.9</version>
</dependency>

如果报错:

com.jcraft.jsch.JSchException: UnknownHostKey: ECDSA key fingerprint is SHA256:dx44zX3lSwQKR0dyJ77K0Fg3qfSRGDYYLbZ8u0IgoUw
//添加私钥
jsch.addIdentity("E:/id_rsa","");
Session session = jsch.getSession("usename", "sftpUrl", sftPort);
Properties sessionConfig = new Properties();
//SSH 公钥检查机制 no、ask、yes
sessionConfig.put("StrictHostKeyChecking", "no");
session.setConfig(sessionConfig);
session.connect();
channelSftp = (ChannelSftp) session.openChannel("sftp");
// 打开SFTP通道
channelSftp.connect();

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值