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