_评论由:mfikes_发表
放弃使用JGit+JSch的另一个原因(如果尚未提及):JSch无法读取新的OpenSSH密钥格式,而这是macOS上默认写入的格式。
以下是一个例子
$ ssh-keygen -f /tmp/foo
这会创建一个带有头部的密钥
-----BEGIN OPENSSH PRIVATE KEY-----
如果您这样做
$ ssh-keygen -m PEM -f /tmp/bar
您将获得一个带有通常头部(和密钥格式)的密钥
-----BEGIN RSA PRIVATE KEY-----
为了说明最新的JSch无法读取这种新密钥类型,请注意在尝试读取{{"/tmp/foo"}}时出现的{{invalid privatekey}}错误
输入以下命令:
Clojure 1.10.0
user=> (import (com.jcraft.jsch JSch KeyPair))
com.jcraft.jsch.KeyPair
user=> (KeyPair/load (JSch.) "/tmp/foo")
执行错误(JSchException)在 com.jcraft.jsch.KeyPair/load (KeyPair.java:664) 处。
无效的私钥:[B@485e36bc
user=> (KeyPair/load (JSch.) "/tmp/bar")
#object[com.jcraft.jsch.KeyPairRSA 0x38f116f6 "com.jcraft.jsch.KeyPairRSA@38f116f6"]