{"id":1986,"date":"2024-03-12T11:11:51","date_gmt":"2024-03-12T02:11:51","guid":{"rendered":"https:\/\/www.rocher.kyoto.jp\/arbr\/?p=1986"},"modified":"2024-03-12T16:13:14","modified_gmt":"2024-03-12T07:13:14","slug":"jenkins%e3%81%aeshh-agent%e3%81%8c%e3%81%a4%e3%81%aa%e3%81%8c%e3%82%89%e3%81%aa%e3%81%84","status":"publish","type":"post","link":"https:\/\/www.rocher.kyoto.jp\/arbr\/?p=1986","title":{"rendered":"Jenkins\u306eshh-agent\u304c\u3064\u306a\u304c\u3089\u306a\u3044"},"content":{"rendered":"\n<p>\u4e00\u6c17\u306b\u3059\u3079\u3066\u3092\u30a2\u30c3\u30d7\u30c7\u30fc\u30c8\u3057\u305f\u306e\u3067\u4f55\u304c\u539f\u56e0\u304b\u308f\u304b\u3089\u306a\u3044\u3051\u3069shh-agent\u304c\u3064\u306a\u304c\u3089\u306a\u304f\u306a\u3063\u3066\u3044\u308b\u3002<\/p>\n\n\n\n<p>Docker\u306eJenkins\u304b\u3089\u305d\u306e\u4e2d\u306essh-agent\u3092\u4f7f\u3046\u3068\u3044\u3046\u3081\u3093\u3069\u304f\u3055\u305d\u3046\u306a\u69cb\u6210<\/p>\n\n\n\n<p>\u3053\u308c\u304b\u3089\u7d30\u304b\u304f\u8abf\u3079\u308b\u304c<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">FATAL: [ssh-agent] Could not find specified credentials\n[ssh-agent] Looking for ssh-agent implementation...\n[ssh-agent] FATAL: Could not find a suitable ssh-agent provider<\/pre>\n\n\n\n<p>\uff08\u30b9\u30bf\u30c3\u30af\u30c8\u30ec\u30fc\u30b9\u306f\u9577\u304f\u306a\u308b\u306e\u3067\u4e0b\u306e\u307b\u3046\u306b\u5f35\u308a\u4ed8\u3051\uff09<\/p>\n\n\n\n<p>\u672c\u6765\u3060\u3068\u4ee5\u4e0b\u307f\u305f\u3044\u306b\u306a\u308b<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">[ssh-agent] Using credentials <strong><em>(credentials\u540d)<\/em><\/strong> \n[ssh-agent] Looking for ssh-agent implementation...\n[ssh-agent]   Exec ssh-agent (binary ssh-agent on a remote machine)\n$ docker exec 80f7594988d50d5a190f788b4ffab62d8902fb594ebfffe3c282f6ace8ee88ba ssh-agent<\/pre>\n\n\n\n<p>\u6b7b\u3093\u3067\u3044\u308b\u306e\u306f<a href=\"https:\/\/github.com\/jenkinsci\/ssh-agent-plugin\/blob\/582ebcc389994c469dc42faa5a6c28688ed56992\/src\/main\/java\/com\/cloudbees\/jenkins\/plugins\/sshagent\/SSHAgentStepExecution.java#L154C11-L154C40\" data-type=\"link\" data-id=\"https:\/\/github.com\/jenkinsci\/ssh-agent-plugin\/blob\/582ebcc389994c469dc42faa5a6c28688ed56992\/src\/main\/java\/com\/cloudbees\/jenkins\/plugins\/sshagent\/SSHAgentStepExecution.java#L154C11-L154C40\">\u3053\u306e\u8fba<\/a>\u306e\u51e6\u7406<\/p>\n\n\n\n<p>SSHAgent\u306e<a href=\"https:\/\/tempora-mutantur.github.io\/jenkins.io\/github_pages_test\/doc\/developer\/extensions\/ssh-agent\/\" data-type=\"link\" data-id=\"https:\/\/tempora-mutantur.github.io\/jenkins.io\/github_pages_test\/doc\/developer\/extensions\/ssh-agent\/\">\u62e1\u5f35\u30dd\u30a4\u30f3\u30c8<\/a>\u4f7f\u3063\u3066\u3044\u308b\u30d7\u30e9\u30b0\u30a4\u30f3\u304c\u306a\u3044\u304b\u3001\u3042\u308b\u3051\u3069factory.isSupported(launcher, listener)\u306e\u3068\u3053\u3067\u30c0\u30e1\u3063\u307d\u3044\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code has-white-color has-dark-gray-background-color has-text-color has-background has-link-color wp-elements-c94f183b8ca0120ebe4a9b9898c9fbc2\"><code>   public boolean isSupported(Launcher launcher, final TaskListener listener) {\n        try {             \n            int status = launcher.launch().cmds(\"ssh-agent\", \"-k\").quiet(true).start().joinWithTimeout(1, TimeUnit.MINUTES, listener);\n            \/* \n             * `ssh-agent -k` returns 0 if terminates running agent or 1 if\n             * it fails to terminate it. On Linux, \n             *\/\n            return (status == 0) || (status == 1);<\/code><\/pre>\n\n\n\n<p>\u3053\u3044\u3064\u304b\u306a\uff1f<s>ssh-agent\u304c\u30ad\u30eb\u3067\u304d\u306a\u3044\u3068\uff08\u2252\u3059\u3067\u306b\u751f\u304d\u3066\u3044\u306a\u3044\u3068\uff09\u3044\u3051\u306a\u3044\u5224\u5b9a\u304c\u3042\u308b<\/s><\/p>\n\n\n\n<p>\u3088\u304f\u307f\u305f\u30890\u304b1\u306a\u3089\u3088\u304b\u3063\u305f\u3002<\/p>\n\n\n\n<p>\u3042\u307e\u308a\u306b\u3082\u308f\u304b\u3089\u306a\u3044\u304b\u3089\u30d7\u30e9\u30b0\u30a4\u30f3\u306b\u30ed\u30b0\u5165\u308c\u3066\u307f\u305f\u3089status \u304c126\u3068\u3044\u3063\u3066\u3044\u308b\u3002<\/p>\n\n\n\n<p>\u30ed\u30b0\u306e\u57cb\u3081\u65b9\u306f<a href=\"https:\/\/www.rocher.kyoto.jp\/arbr\/?p=1996\" data-type=\"post\" data-id=\"1996\">\u3053\u3061\u3089<\/a><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">[ssh-agent] Looking for ssh-agent implementation...\n[Loaded]   Exec ssh-agent (binary ssh-agent on a remote machine)\nstatus: 126<\/pre>\n\n\n\n<p><a href=\"http:\/\/If a command is found but is not executable, the return status is 126.\">\u3053\u3061\u3089<\/a>\u3092\u307f\u308b\u3068\u5b9f\u52b9\u6a29\u9650\u304c\u306a\u3044\u3068\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;Loaded]   Exec ssh-agent (binary ssh-agent on a remote machine)\nOCI runtime exec failed: exec failed: unable to start container process: exec: \"ssh-agent\": executable file not found in $PATH: unknown\nstatus: 126<\/code><\/pre>\n\n\n\n<p>\u3055\u3089\u306b\u30ed\u30b0\u57cb\u3081\u305f\u3089\u3046\u3048<\/p>\n\n\n\n<p>\u305d\u3057\u3066\u3055\u3089\u306b\u3055\u307e\u3088\u3063\u305f\u3089\u3001ssh-agent\u5165\u308c\u306a\u304d\u3083\u3044\u3051\u306a\u3044\u306e\u306fjenkins\u30d5\u30a1\u30a4\u30eb\u306b\u66f8\u3044\u3066\u3042\u308bimage\u306a\u3053\u3068\u306b\u3084\u3063\u3068\u6c17\u3065\u3044\u305f\u3002\u30d6\u30ed\u30b0\u66f8\u304d\u306a\u304c\u3089\u3084\u3063\u305f\u3051\u3069\u305f\u3060\u306e\u30dd\u30ab\u30df\u30b9\u3060\u3002\u3002\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">pipeline {\r\n\tagent {\r\n\t\tdocker {\r\n\t\t\timage 'kyoshitake\/maven'<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\u9577\u304f\u306a\u3063\u305f\u5143\u3005\u306e\u30b9\u30bf\u30c3\u30af\u30c8\u30ec\u30fc\u30b9<\/h2>\n\n\n\n<p>Also: org.jenkinsci.plugins.workflow.actions.ErrorAction$ErrorId: 594109d1-aaf2-4c19-97c1-539affc618f2 java.lang.RuntimeException: [ssh-agent] Could not find a suitable ssh-agent provider. at com.cloudbees.jenkins.plugins.sshagent.SSHAgentStepExecution.initRemoteAgent(SSHAgentStepExecution.java:176) at com.cloudbees.jenkins.plugins.sshagent.SSHAgentStepExecution.start(SSHAgentStepExecution.java:64) at org.jenkinsci.plugins.workflow.cps.DSL.invokeStep(DSL.java:323) at org.jenkinsci.plugins.workflow.cps.DSL.invokeMethod(DSL.java:196) at org.jenkinsci.plugins.workflow.cps.CpsScript.invokeMethod(CpsScript.java:124) at java.base\/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base\/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at java.base\/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.base\/java.lang.reflect.Method.invoke(Unknown Source) at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:98) at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1225) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1034) at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:41) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116) at org.kohsuke.groovy.sandbox.impl.Checker$1.call(Checker.java:180) at org.kohsuke.groovy.sandbox.GroovyInterceptor.onMethodCall(GroovyInterceptor.java:23) at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onMethodCall(SandboxInterceptor.java:163) at org.kohsuke.groovy.sandbox.impl.Checker$1.call(Checker.java:178) at org.kohsuke.groovy.sandbox.impl.Checker.checkedCall(Checker.java:182) at org.kohsuke.groovy.sandbox.impl.Checker.checkedCall(Checker.java:152) at com.cloudbees.groovy.cps.sandbox.SandboxInvoker.methodCall(SandboxInvoker.java:17) at org.jenkinsci.plugins.workflow.cps.LoggingInvoker.methodCall(LoggingInvoker.java:105) at WorkflowScript.run(WorkflowScript:18) at org.jenkinsci.plugins.pipeline.modeldefinition.ModelInterpreter.delegateAndExecute(ModelInterpreter.groovy:137) at org.jenkinsci.plugins.pipeline.modeldefinition.ModelInterpreter.executeSingleStage(ModelInterpreter.groovy:666) at org.jenkinsci.plugins.pipeline.modeldefinition.ModelInterpreter.catchRequiredContextForNode(ModelInterpreter.groovy:395) at org.jenkinsci.plugins.pipeline.modeldefinition.ModelInterpreter.catchRequiredContextForNode(ModelInterpreter.groovy:393) at org.jenkinsci.plugins.pipeline.modeldefinition.ModelInterpreter.executeSingleStage(ModelInterpreter.groovy:665) at org.jenkinsci.plugins.pipeline.modeldefinition.ModelInterpreter.evaluateStage(ModelInterpreter.groovy:288) at org.jenkinsci.plugins.pipeline.modeldefinition.ModelInterpreter.toolsBlock(ModelInterpreter.groovy:544) at org.jenkinsci.plugins.pipeline.modeldefinition.ModelInterpreter.toolsBlock(ModelInterpreter.groovy:543) at org.jenkinsci.plugins.pipeline.modeldefinition.ModelInterpreter.evaluateStage(ModelInterpreter.groovy:276) at org.jenkinsci.plugins.pipeline.modeldefinition.ModelInterpreter.withEnvBlock(ModelInterpreter.groovy:443) at org.jenkinsci.plugins.pipeline.modeldefinition.ModelInterpreter.withEnvBlock(ModelInterpreter.groovy:442) at org.jenkinsci.plugins.pipeline.modeldefinition.ModelInterpreter.evaluateStage(ModelInterpreter.groovy:275) at org.jenkinsci.plugins.pipeline.modeldefinition.ModelInterpreter.withCredentialsBlock(ModelInterpreter.groovy:481) at org.jenkinsci.plugins.pipeline.modeldefinition.ModelInterpreter.withCredentialsBlock(ModelInterpreter.groovy:480) at org.jenkinsci.plugins.pipeline.modeldefinition.ModelInterpreter.evaluateStage(ModelInterpreter.groovy:274) at org.jenkinsci.plugins.pipeline.modeldefinition.ModelInterpreter.inDeclarativeAgent(ModelInterpreter.groovy:586) at org.jenkinsci.plugins.pipeline.modeldefinition.ModelInterpreter.inDeclarativeAgent(ModelInterpreter.groovy:585) at org.jenkinsci.plugins.pipeline.modeldefinition.ModelInterpreter.evaluateStage(ModelInterpreter.groovy:272) at org.jenkinsci.plugins.pipeline.modeldefinition.ModelInterpreter.stageInput(ModelInterpreter.groovy:356) at org.jenkinsci.plugins.pipeline.modeldefinition.ModelInterpreter.stageInput(ModelInterpreter.groovy:355) at org.jenkinsci.plugins.pipeline.modeldefinition.ModelInterpreter.evaluateStage(ModelInterpreter.groovy:261) at org.jenkinsci.plugins.pipeline.modeldefinition.ModelInterpreter.inWrappers(ModelInterpreter.groovy:618) at org.jenkinsci.plugins.pipeline.modeldefinition.ModelInterpreter.inWrappers(ModelInterpreter.groovy:617) at org.jenkinsci.plugins.pipeline.modeldefinition.ModelInterpreter.evaluateStage(ModelInterpreter.groovy:259) at org.jenkinsci.plugins.pipeline.modeldefinition.ModelInterpreter.withEnvBlock(ModelInterpreter.groovy:443) at org.jenkinsci.plugins.pipeline.modeldefinition.ModelInterpreter.withEnvBlock(ModelInterpreter.groovy:442) at org.jenkinsci.plugins.pipeline.modeldefinition.ModelInterpreter.evaluateStage(ModelInterpreter.groovy:254) at ___cps.transform___(Native Method) at com.cloudbees.groovy.cps.impl.ContinuationGroup.methodCall(ContinuationGroup.java:90) at com.cloudbees.groovy.cps.impl.FunctionCallBlock$ContinuationImpl.dispatchOrArg(FunctionCallBlock.java:116) at com.cloudbees.groovy.cps.impl.FunctionCallBlock$ContinuationImpl.fixArg(FunctionCallBlock.java:85) at jdk.internal.reflect.GeneratedMethodAccessor167.invoke(Unknown Source) at java.base\/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.base\/java.lang.reflect.Method.invoke(Unknown Source) at com.cloudbees.groovy.cps.impl.ContinuationPtr$ContinuationImpl.receive(ContinuationPtr.java:72) at com.cloudbees.groovy.cps.impl.ClosureBlock.eval(ClosureBlock.java:46) at com.cloudbees.groovy.cps.Next.step(Next.java:83) at com.cloudbees.groovy.cps.Continuable$1.call(Continuable.java:152) at com.cloudbees.groovy.cps.Continuable$1.call(Continuable.java:146) at org.codehaus.groovy.runtime.GroovyCategorySupport$ThreadCategoryInfo.use(GroovyCategorySupport.java:136) at org.codehaus.groovy.runtime.GroovyCategorySupport.use(GroovyCategorySupport.java:275) at com.cloudbees.groovy.cps.Continuable.run0(Continuable.java:146) at org.jenkinsci.plugins.workflow.cps.SandboxContinuable.access$001(SandboxContinuable.java:18) at org.jenkinsci.plugins.workflow.cps.SandboxContinuable.run0(SandboxContinuable.java:51) at org.jenkinsci.plugins.workflow.cps.CpsThread.runNextChunk(CpsThread.java:187) at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.run(CpsThreadGroup.java:423) at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:331) at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:295) at org.jenkinsci.plugins.workflow.cps.CpsVmExecutorService$2.call(CpsVmExecutorService.java:97) at java.base\/java.util.concurrent.FutureTask.run(Unknown Source) at hudson.remoting.SingleLaneExecutorService$1.run(SingleLaneExecutorService.java:139) at jenkins.util.ContextResettingExecutorService$1.run(ContextResettingExecutorService.java:28) at jenkins.security.ImpersonatingExecutorService$1.run(ImpersonatingExecutorService.java:68) at jenkins.util.ErrorLoggingExecutorService.lambda$wrap$0(ErrorLoggingExecutorService.java:51) at java.base\/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) at java.base\/java.util.concurrent.FutureTask.run(Unknown Source) at java.base\/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.base\/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.base\/java.lang.Thread.run(Unknown Source) Finished: FAILURE<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u4e00\u6c17\u306b\u3059\u3079\u3066\u3092\u30a2\u30c3\u30d7\u30c7\u30fc\u30c8\u3057\u305f\u306e\u3067\u4f55\u304c\u539f\u56e0\u304b\u308f\u304b\u3089\u306a\u3044\u3051\u3069shh-agent\u304c\u3064\u306a\u304c\u3089\u306a\u304f\u306a\u3063\u3066\u3044\u308b\u3002 Docker\u306eJenkins\u304b\u3089\u305d\u306e\u4e2d\u306essh-agent\u3092\u4f7f\u3046\u3068\u3044\u3046\u3081\u3093\u3069\u304f\u3055\u305d\u3046\u306a\u69cb\u6210 \u3053\u308c\u304b\u3089\u7d30\u304b\u304f\u8abf\u3079\u308b\u304c  [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[116,58],"tags":[37,112],"class_list":["post-1986","post","type-post","status-publish","format-standard","hentry","category-java","category-58","tag-java","tag-jenkins"],"_links":{"self":[{"href":"https:\/\/www.rocher.kyoto.jp\/arbr\/index.php?rest_route=\/wp\/v2\/posts\/1986","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.rocher.kyoto.jp\/arbr\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.rocher.kyoto.jp\/arbr\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.rocher.kyoto.jp\/arbr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.rocher.kyoto.jp\/arbr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1986"}],"version-history":[{"count":12,"href":"https:\/\/www.rocher.kyoto.jp\/arbr\/index.php?rest_route=\/wp\/v2\/posts\/1986\/revisions"}],"predecessor-version":[{"id":2001,"href":"https:\/\/www.rocher.kyoto.jp\/arbr\/index.php?rest_route=\/wp\/v2\/posts\/1986\/revisions\/2001"}],"wp:attachment":[{"href":"https:\/\/www.rocher.kyoto.jp\/arbr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1986"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.rocher.kyoto.jp\/arbr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1986"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.rocher.kyoto.jp\/arbr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1986"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}