我正在尝试在“通过 SSH 发布”Jenkins 插件中启用 ForwardAgent。这将允许 jenkins 在远程服务器上执行部署、rsyncs 和 svn+ssh 检出。但是在 GUI 中没有这个选项。
ForwardAgent 在 /etc/ssh/ssh_config 和 /var/lib/jenkins/.ssh/config 中设置为 yes,但是当 Jenkins 作业通过 ssh 登录时,远程会话没有在代理中加载密钥。(“无法打开与您的身份验证代理的连接。”)
有没有办法强制 ForwardAgent,或者有更好的方法来做到这一点(通过 Jenkins slave)?
感谢您的任何想法,非常感谢!
好吧,我已经花了一整天的时间——
我正在使用带有 mod_ssl 的 apache 我正在尝试采用一个现有的环境标头“%{SSL_CLIENT_S_DN_CN}s”,它看起来像“Lastname Firstname Mi username”并设置一个名为 USERNAME 的新标头并将其设置为仅等于 username(最后一个空格和字符串末尾之间的字符)
然后我将该标头反向代理到后端主机,后端主机将使用它来识别用户。
我尝试了很多不同的东西。我不知道问题是我不理解 perl 正则表达式,还是我不理解语法,或者我没有把它放在正确的地方,或者三者兼而有之。
这是我尝试过的一件事的示例:
SetEnvIf SSL_CLIENT_S_DN_CN (.*\ )(.*) newhostname=$2
RequestHeader set HOSTNAME "%{newhostname}e"
Run Code Online (Sandbox Code Playgroud)
我真正想要的是一个新的标头主机名,它等于 DN_CN 环境变量中的最后一个非空白字符。