jsch.addIdentity invalid key报错问题

在使用JSCH库进行SSH连接时遇到`invalidkey`错误,尝试了升级JSCH版本和使用不同格式的密钥文件,但问题依然存在。在本地环境与服务器环境中都出现该问题,通过检查发现密钥文件可以被正确获取。最后通过将密钥转换为原始格式并更新JSCH库至0.1.55解决了问题。
摘要由CSDN通过智能技术生成

jsch.addIdentity报错问题

  • JDK1.8

  • jsch 0.1.52

  • 报错信息 :privatekey: invalid key …

    一开始网上搜罗的信息大都是,jsch版本太低,需要对应使用的密钥需要使用openSSH生成的低版本.PPK文件,样式是如下的

PuTTY-User-Key-File-2: ssh-rsa
Encryption: none
Comment: imported-openssh-key
Public-Lines: 6
AAAAB3NzaC1yc2EAAAADAQABAAABAQDYWYgFkwlXDnFRFt+HF8ubG9qjYNDvQfuz
/nSdMl1FRVGpm6f5wXU0LFEXcBpQelIt8Ci8kdYvK7CEs1dq9u7ljujjhGVuPRbc
SGGq9HlGLbS1Bo+o4jqI07k9jGdHLqlWX8WE21xAqGzVnhEYcg5EiMOlrcuE5o0Y
aGOP+sDpHS0m5vgh1sXuhzqHOTz9fMsfCTT5dG3JWFyzjEaqi7gM7vGBEX2ichxt
adoM4ewTXBzoNMLkilMHouC+Ib2ZiEeDv+n80ZbEp8LiLWu3N+5dbRHl0zHruDH4
Pu1QfK6Bw2fFxpiSBBGYxvJs6IGs11QE0m6qowfB9e1WhUbcdIst
Private-Lines: 14
AAABAAponEuwXEWs8zS0hgKI2YnX2Df+A29PXF23g0LA1o3rnNctHvK8JPhinXAk
O4/dorCFGmCgH47baj2oJy+FO88dhgTULNEV7VChxtkjs+X1cvk2nJjCcZB9py7X
32wkSY9XQjh3GUQfFkVcunPToO4ZKliBOQZm1Sj0dL3LkZZlc02PeQTj5OcCCaR9
NDVK6J7LPK5xgARvEHbAe6vd0yTu76tjH68ztn+rCkFlI9W6MIwhSyXIpJ8SGCLw
g/JcGzLusKhPubjuXY29X6LBy7iqFgqqrqDix7KxB8pS+01lYTVIMF40w9gsHdAK
1Yaj9dGfZl5loyu4eO8ztYBdr4EAAACBAO+11OIUg8t3zkwfovkEpuZej8531f6M
zFHB7FnsM2bL3YIJplcuPoy7QcxosOZw290ZBg7cHcaVqHhw3s5hsucBFMsbhPqD
beykK7D6uCs1gbzYdbdLjdVK0m7OYUDA//dSyweFUjFF9H7KifqySxJOu2we2fDO
3vC4q1b7fF8NAAAAgQDnDU2iZ4k7WDLpKmFaQne3ognibprn5No9TFIwbgFb/cDD
JlLy849qEqaOs7+T0Eqj0AHcyQeX6qc/3XzVfX4Mt3PcoHn+ho6kyZUlAbijsnMH
XvxuE2z5Qm8iaDmppHP74li5C6DnJhaSzJ43nXY3Wj5OzWN4weqFc9KSlR7UoQAA
AIATS8LxcGSYD39FgDbnj73XVwDexFHQD9hZBoMHS0Lr6+NJdoVTRC0Cky651Dw6
twYreXoTUG/zgGifyRneUtH4ZmWrQ0WCvk/n+mq2uw5MC+Ze0Ob/1vA8vxTIB0aa
uLSV/P9RMkupWAABonqLdMwKin49wJXCKRIdUXUIKH+qgg==
Private-MAC: 59f12d27d20127101aa6ed80d0304882cd347e93

我确实是使用PPK文件,并且本地dev环境可以正常使用访问到SFTP,PPK文件是使用winSCP工具生成的,但是在服务器k8s容器环境依旧报错 invalid key ,我甚至怀疑是服务器没有获取到密钥文件,并在dockerfile中把密钥文件copy到指定目录

USER vmuser
RUN mkdir /opt/project/ -p
WORKDIR  /opt/project
ADD  ./docker/startup.sh  /opt/project
ADD  ./target/project-test.jar /opt/project
#密钥COPY到指定文件目录,
ADD  ./doc-file/private-test-key.ppk /opt/project
ENTRYPOINT ["sh", "startup.sh", "project-test"]

依旧不好使,还是报错,并且为了排除PPK文件获取问题,我做了BufferRead读取打印了文件,确认了文件是可以正常获取到的。排除这个问题后,我在mac-book 使用FTP工具 + PPK密钥进行链接,也出现了invalid key工具链接报错问题(winSCP貌似只有windows版本,在mac上用的Xsheel)

解决方法

  1. 升级jsch 包 0.1.52 -> 0.1.55
  2. 使用原始的密钥(如下显示),不再使用.PPK文件
-----BEGIN RSA PRIVATE KEY-----
MIIEpQIBAAKCAQEAxYu1q2gpwVh4sSTCIBzHPDUjJuSbTF76TlFtQcO7vrXZrNVr
56tHdWTw9ozOxCNJ5fA3VQvoYv7vOABDHAfgSw0EFGhtz4WSwtZF0v9sx9VZdiE/
8fIzfjSZzxHA7XMTZSueTpWwoaalGy/2E/w+tfF9G9jYHmxn+hla6qFZkFJQJpRr
L/fj4MpDb/D4SdgHL0h5WTpmeuilHeL05G/vKS/4sy7nZegM9sBJtT2joFUTOYCf
LnX/8a0YJfiYg/dheBet5a6giUuYjMOFztqquabINY36rFc2ehoFYCZGd3QYgtjp
6HoorDlf0AhqQ+GBgAn5B8AzEvVYC4MADbMPqwIDAQABAoIBAG78+LvuEQ+tOlok
keDi6ll8bVyLsmktL6rS+vSpGRGkMEF3w2FtDP/7D5smL4FpZjqHRT9GKnF8VED9
fLcCAdWI4ZLpvVCL9pH7O0257o8z4kiJk9jGwIGW4hfCHMgMEIiWAiKa3Ztk+nyU
7Mf7v+wPWsBLi9lEBQMyPa93qc94Qww3lgu0s/mUltSfn6BuRRP0WxC7bqQkVc6v
TwQtW8rNTiLwKK2nv2Ak8Tb+CeFWxK++rKPWrQi/Ca8JQFSznt1tSfuP9nbVtXf5
j6R7pLxcyyh3/r2t/RR3iPm7MtwMpzkVXnvnx6qQxlsXYGCq0jbSgaCG+VNbcSB5
eilS9WkCgYEA5SWihWl4yC12qFkWgQe+BQs45MDfeSRTweqoaNXVG1m+4mD2m706
qKtKeAWz/4votsKKTV36aTzLVQN0yvz0mmkpmgBUjWLK5Dd/KXafUTebBkeXU0Pq
FUTIce+S2gRsASnRYs4bxVLFdYQjMgSEEA31tqdb2dhpe6n2FE0rp20CgYEA3LIK
/MzaV4LnswaDAEA++Lf1o+zGzqqfzak0rmRwPHrbNh7Wpksu8EHkLKrScu++ekYP
9wKtkk17pafNf1NMT5B/KSho3No0R6OYJEPaFr4ZMXXppO2Y7rc1fdKJQUBbmnfD
NT+pDfZzymYp+/KdSEZrRjpfCa6mDgJL2Pe3rHcCgYEAvJIYCIofZzxipW+K4Wwp
p6TwkO9X+C048B/Xr04pLXTRbSI2TzuOBjfP9K1czzOnsp6tibWI2Qm6mp9ZgaJg
+KEKJz2WVzOxm9U/xDNmMEP+Q1Cu60q8W/xap8hrpRZ2ew6azSCoId5XuLmg7Qxi
UYPrbQCUydUaGTZo15QaFJECgYEAmWxMpyHiSCQA3zwPpgUDwfRhF+xq6RFEtryC
mxnHzMO70QvvPPvXTb8A2OyIEM8KJAbA4n9CGwsygh79hR5rVoSlYf9tptsqrQLV
qaBh5J2S9gd6veVPA+Tpkubh9DLBe8j2M/ZlmAdUx8fuN/CZ1rzdppy9pQV8+xAt
mk/bqFECgYEAp2X+V6ZYpgkQ+X5YyVEF9c+6URXP2eLKneNXUmQFY5b0B11gV9OU
q+Hlt/Sb4mKH186Ks0JLBWdQ3hZFyIUytEgSJVVeU+Mph+7D/ME0tvv3NiuAAWWk
pvvIECHKkrbwuuQc4+qh8R2tbrNo0L5CDpUWTM/l7ahonVNkldBZ2ds=
-----END RSA PRIVATE KEY-----```

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值