jenkins Publish over SSH免密连接windows openssh报错Auth
1. 版本
Jenkins 2.363
openssh 9.0
2.起因jenkins安装在linux上,需要连接indos的openssh实现远程部署
3.经过 1.Publish Over CIFS方案因为公司的服务器都只能通过堡垒机登录,所以我个人无法拿到indos服务器的administrator用户的密码,但使用新建用户通过Publish Over CIFS只能向indos传输文件无法远程执行命令,所以这种方法本身就无法实现远程部署。
2.Publish Over SSH + OpenSSH只能通过indos端安装openssh与jenkins建立ssh隧道可以实现sftp传输文件和远程执行命令
3.indos上安装openssh修改配置按照网上的方法进行免密登录的配置
此时需留意箭头处的公钥路径,到时候公钥需要放在这个路径下
4.jenkins生成公私钥在部署jenkins的linux系统中直接运行ssh-keygen命令生成公私钥一路回车(如不需要设置密码)
5.将公钥放在indos的openssh上面配置文件中的路径下并改名为配置文件路径中的名字此时重启openssh后jenkins服务器中使用ssh -i /key administrator@192.168.1.1连接indos应该是没问题的,但jenkins的Publish Over SSH却会报错
6.Auth fail困扰了我两天的问题,在Publish Over SSH的github上看到有人遇到类似的问题,定位下来是openssh在新版本中不支持rsa的加密格式了,而Publish Over SSH并没有兼容这个问题,所以通过命令行能够连上,但jenkins连不上。
解决方法就是在配置文件中加上PubKeyAeptedKeyTypes=+ssh-rsa
目前github上这个问题是打开状态 预计不久的将来jenkins官网会解决这个问题
7.Failed to connect SFTP channel后来又出现了SFTP连不上,这个问题比上一个好定位
如图,请检测你的sftp的路径是否是正确的指向了sftp-server
更改完一切,重启openssh后即可连接成功了