我最近将云服务器操作系统从Ubuntu 20.04更改为22.04。之后,在使用org.hidetake.sh构建gradle的过程中,远程上传jar任务失败,并显示以下消息。
com.jcraft.JSchException:Auth fail
我想这可能是一个RSA问题,在Ubuntu 22.04上不推荐使用,但我找不到如何解决它。
下面是我在ssh.run任务中使用的配置。如果有人有主意,我将不胜感激。
remotes {
myServer {
host = 'x.x.x.x'
port = 22
user = 'ubuntu'
identity = file('d:/a.pem')
knownHosts = allowAnyHosts
}
}
服务器确实很可能需要rsa-sha2
。JSch不支持它。由于JSch似乎不再更新,它很可能永远不会更新。
不过,JSch的一个分支是这样做的:
https://github.com/mwiede/jsch
另一个(显然不太安全(选项是通过将弃用的ssh-rsa
添加到PubkeyAcceptedAlgorithms
来重新配置服务器,使其不需要rsa-sha2
。