由于公司中的某些原因,需要在袜子代理后面的服务器上自动执行几个命令。 到目前为止,我已经通过这种方式在管道中做到了这一点(虽然对我来说这是很新的):
sh'ssh -vvv -t -o StrictHostKeyChecking =否-o ProxyCommand =“ nc -x elki-palki.socks4.chot-b-ego.com:1080%h%p” petya.properdikin@xxx.xxx.xxx.xxx <<-EOF“ pwd \ n /tmp/jenkins/01.sh\n pwd \ n .....” EOF'
是否可以使用SOCKS4代理配置SSH站点以使用常规的Freestyle Jobs? enter image description here
答案 0 :(得分:0)
对于袜子代理,它更为复杂。 在this article和Java docs的基础上,您必须使用一些其他标志来启动Jenkins,以下是文档:
袜子 这是另一种代理。它允许较低级别的 隧道,因为它在TCP级别上起作用。实际上,在Java(tm)中 平台设置SOCKS代理服务器将导致所有TCP 通过该代理的连接,除非有其他代理 指定。如果Java SE实施支持SOCKS,则 将使用以下属性:
socksProxyHost (default: <none>) The hostname, or address, of the proxy server. socksProxyPort (default: 1080) The port number of the proxy server. socksProxyVersion (default: 5) The version of the SOCKS protocol supported by the server. The default is 5 indicating SOCKS V5, alternatively 4 can be specified for
袜子V4。将属性设置为这些值以外的值会导致 未指明的行为。
java.net.socks.username (default: <none>) Username to use if the SOCKSv5 server asks for authentication and no java.net.Authenticator instance was found. java.net.socks.password (default: <none>) Password to use if the SOCKSv5 server asks for authentication and no java.net.Authenticator instance was found.
很可能看起来像这样
java -DsocksProxyHost=some.proxy.host -DsocksProxyPort=1234 -DsocksProxyVersion=4 -jar jenkins.war
取决于您实际启动詹金斯等的方式。
答案 1 :(得分:0)
已解决,只是拒绝使用ssh在远程主机上使用执行shell脚本。而是使用普通的执行外壳。然后,您将不得不在〜/ .ssh / config中或在/ etc / ssh / ssh_config中全局创建ssh_config,然后在其中将信息粘贴到Socks4(或使用的任何代理)中:
Host xxx.xxx.xxx.xxx
ProxyCommand='nc -x elki-palki.socks.chob-ego.com:1080 %h %p'
User petya.properdikin
ForwardAgent yes
Port 22
然后它应该可以工作(假设ssh密钥设置正确)