├── .backportrc.json ├── .editorconfig ├── .github ├── CODEOWNERS ├── dependabot.yml ├── release-drafter.yml └── workflows │ ├── cd.yaml │ ├── jenkins-security-scan.yml │ └── ssh-agent-docker.yml ├── .gitignore ├── .mvn ├── extensions.xml └── maven.config ├── CHANGELOG.md ├── Jenkinsfile ├── LICENSE.txt ├── README.md ├── doc ├── CONFIGURE.md ├── CYGWIN.md ├── TROUBLESHOOTING.md └── images │ ├── availability-as-much.png │ ├── availability-on-demand.png │ ├── availability-schedule.png │ ├── hkvs-known-hosts.png │ ├── hkvs-manual-key.png │ ├── hkvs-no-verify.png │ ├── hkvs-trusted-key.png │ ├── new-node-button.png │ ├── new-node-config.png │ ├── ssh-credentials-domain.png │ ├── ssh-credentials-manage-detail.png │ ├── ssh-credentials-manage.png │ ├── ssh-credentials-select.png │ ├── ssh-node-advanced-config.png │ ├── ssh-node-basic-config.png │ └── ssh-node-launcher-config.png ├── pom.xml └── src ├── main ├── java │ └── hudson │ │ └── plugins │ │ └── sshslaves │ │ ├── PluginImpl.java │ │ ├── SSHConnector.java │ │ ├── SSHLauncher.java │ │ └── verifiers │ │ ├── HostKey.java │ │ ├── HostKeyHelper.java │ │ ├── JenkinsTrilead9VersionSupport.java │ │ ├── KeyParseException.java │ │ ├── KnownHostsFileKeyVerificationStrategy.java │ │ ├── ManuallyProvidedKeyVerificationStrategy.java │ │ ├── ManuallyTrustedKeyVerificationStrategy.java │ │ ├── MissingVerificationStrategyAdministrativeMonitor.java │ │ ├── NonVerifyingKeyVerificationStrategy.java │ │ ├── SshHostKeyVerificationStrategy.java │ │ ├── TrileadVersionSupportManager.java │ │ └── TrustHostKeyAction.java └── resources │ ├── hudson │ └── plugins │ │ └── sshslaves │ │ ├── Messages.properties │ │ ├── Messages_de.properties │ │ ├── Messages_es.properties │ │ ├── Messages_ja.properties │ │ ├── Messages_zh_CN.properties │ │ ├── Messages_zh_TW.properties │ │ ├── SSHConnector │ │ ├── config.jelly │ │ ├── config_de.properties │ │ ├── config_es.properties │ │ ├── config_fr.properties │ │ ├── config_ja.properties │ │ ├── config_sv_SE.properties │ │ ├── config_zh_TW.properties │ │ ├── help-credentialsId.html │ │ ├── help-credentialsId_ja.html │ │ ├── help-credentialsId_zh_TW.html │ │ ├── help-host.html │ │ ├── help-javaPath.html │ │ ├── help-javaPath_ja.html │ │ ├── help-javaPath_zh_TW.html │ │ ├── help-jvmOptions.html │ │ ├── help-launchTimeoutSeconds.html │ │ ├── help-maxNumRetries.html │ │ ├── help-port.html │ │ ├── help-prefixStartSlaveCmd.html │ │ ├── help-retryWaitTime.html │ │ ├── help-sshHostKeyVerificationStrategy.html │ │ ├── help-suffixStartSlaveCmd.html │ │ ├── help-tcpNoDelay.html │ │ └── help-workDir.html │ │ ├── SSHLauncher │ │ ├── config.jelly │ │ ├── config_de.properties │ │ ├── config_es.properties │ │ ├── config_ja.properties │ │ ├── config_sv_SE.properties │ │ ├── config_zh_TW.properties │ │ ├── help.jelly │ │ ├── help.properties │ │ └── help_de.properties │ │ └── verifiers │ │ ├── KnownHostsFileKeyVerificationStrategy │ │ ├── config.jelly │ │ └── help.html │ │ ├── ManuallyProvidedKeyVerificationStrategy │ │ ├── config.jelly │ │ ├── help-key.html │ │ └── help.html │ │ ├── ManuallyTrustedKeyVerificationStrategy │ │ ├── config.jelly │ │ ├── help-requireInitialManualTrust.html │ │ └── help.html │ │ ├── MissingVerificationStrategyAdministrativeMonitor │ │ └── message.jelly │ │ ├── NonVerifyingKeyVerificationStrategy │ │ ├── config.jelly │ │ └── help.html │ │ └── TrustHostKeyAction │ │ ├── trustHostKey.jelly │ │ └── trustHostKey.properties │ └── index.jelly └── test ├── java └── hudson │ └── plugins │ └── sshslaves │ ├── SSHLauncherCasCRoundTripTest.java │ ├── SSHLauncherCasCSupportTest.java │ ├── SSHLauncherTest.java │ ├── agents │ ├── AgentConnectionBaseTest.java │ ├── AgentCurve25519Sha256ConnectionTest.java │ ├── AgentDSAConnectionTest.java │ ├── AgentECConnectionTest.java │ ├── AgentECDHSha2Nistp256ConnectionTest.java │ ├── AgentECDHSha2Nistp384ConnectionTest.java │ ├── AgentECDHSha2Nistp521ConnectionTest.java │ ├── AgentED25519ConnectionTest.java │ ├── AgentHostECConnectionTest.java │ ├── AgentHostEDConnectionTest.java │ ├── AgentHostRSAConnectionTest.java │ ├── AgentRSA256ConnectionTest.java │ ├── AgentRSA512ConnectionTest.java │ ├── AgentRSAConnectionTest.java │ ├── AgentRSA_AES128CBC_ConnectionTest.java │ ├── AgentRSA_AES192CBC_ConnectionTest.java │ ├── AgentRSA_AES256CBC_ConnectionTest.java │ ├── AgentRSA_DESCBC_ConnectionTest.java │ ├── AgentRSA_DES_EDE3CBC_ConnectionTest.java │ ├── AgentUbuntu20RSAConnectionTest.java │ ├── AgentUbuntu22RSAConnectionTest.java │ ├── AgentUbuntu24RSAConnectionTest.java │ └── AgentUserAndPasswordConnectionTest.java │ ├── tags │ └── TestTags.java │ └── verifiers │ ├── ManuallyProvidedKeyVerificationStrategyTest.java │ ├── TrileadVersionSupportManagerTest.java │ ├── TrustHostKeyActionTest.java │ └── VerificationStrategyConfigurationTest.java └── resources ├── hudson └── plugins │ └── sshslaves │ ├── SSHCasCConfig.yml │ ├── SSHCasCConfigLegacy.yml │ └── agents │ ├── ssh-agent-base │ └── Dockerfile │ ├── ssh-agent-curve25519-sha256 │ ├── Dockerfile │ └── ssh │ │ ├── authorized_keys │ │ ├── rsa-key │ │ ├── rsa-key.pub │ │ └── sshd_config │ ├── ssh-agent-dsa │ ├── Dockerfile │ └── ssh │ │ ├── authorized_keys │ │ ├── dsakey │ │ ├── dsakey.pub │ │ └── sshd_config │ ├── ssh-agent-ec │ ├── Dockerfile │ └── ssh │ │ ├── authorized_keys │ │ ├── ecdsakey │ │ ├── ecdsakey.pub │ │ └── sshd_config │ ├── ssh-agent-ecdh-sha2-nistp256 │ ├── Dockerfile │ └── ssh │ │ ├── authorized_keys │ │ ├── rsa-key │ │ ├── rsa-key.pub │ │ └── sshd_config │ ├── ssh-agent-ecdh-sha2-nistp384 │ ├── Dockerfile │ └── ssh │ │ ├── authorized_keys │ │ ├── rsa-key │ │ ├── rsa-key.pub │ │ └── sshd_config │ ├── ssh-agent-ecdh-sha2-nistp521 │ ├── Dockerfile │ └── ssh │ │ ├── authorized_keys │ │ ├── rsa-key │ │ ├── rsa-key.pub │ │ └── sshd_config │ ├── ssh-agent-ed25519 │ ├── Dockerfile │ └── ssh │ │ ├── authorized_keys │ │ ├── ed25519key │ │ ├── ed25519key.pub │ │ └── sshd_config │ ├── ssh-agent-host-ec │ ├── Dockerfile │ └── ssh │ │ ├── authorized_keys │ │ ├── rsa-key │ │ ├── rsa-key.pub │ │ └── sshd_config │ ├── ssh-agent-host-ed │ ├── Dockerfile │ └── ssh │ │ ├── authorized_keys │ │ ├── rsa-key │ │ ├── rsa-key.pub │ │ └── sshd_config │ ├── ssh-agent-host-rsa │ ├── Dockerfile │ └── ssh │ │ ├── authorized_keys │ │ ├── rsa-key │ │ ├── rsa-key.pub │ │ └── sshd_config │ ├── ssh-agent-rsa │ ├── Dockerfile │ └── ssh │ │ ├── authorized_keys │ │ ├── rsa-key │ │ ├── rsa-key-aes128-cbc │ │ ├── rsa-key-aes192-cbc │ │ ├── rsa-key-aes256-cbc │ │ ├── rsa-key-des-cbc │ │ ├── rsa-key-des-ede3-cbc │ │ ├── rsa-key.pub │ │ └── sshd_config │ ├── ssh-agent-rsa256 │ ├── Dockerfile │ └── ssh │ │ ├── authorized_keys │ │ ├── rsa-256-key │ │ ├── rsa-256-key.pub │ │ └── sshd_config │ ├── ssh-agent-rsa512 │ ├── Dockerfile │ └── ssh │ │ ├── authorized_keys │ │ ├── rsa-512-key │ │ ├── rsa-512-key.pub │ │ └── sshd_config │ ├── ssh-agent-ubuntu-20 │ ├── Dockerfile │ └── ssh │ │ ├── authorized_keys │ │ ├── rsa-key │ │ ├── rsa-key.pub │ │ └── sshd_config │ ├── ssh-agent-ubuntu-22 │ ├── Dockerfile │ └── ssh │ │ ├── authorized_keys │ │ ├── rsa-key │ │ ├── rsa-key.pub │ │ └── sshd_config │ └── ssh-agent-ubuntu-24 │ ├── Dockerfile │ └── ssh │ ├── authorized_keys │ ├── rsa-key │ ├── rsa-key.pub │ └── sshd_config └── readInputStreamIntoByteArrayTestFile.txt /.backportrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "upstream": "jenkinsci/ssh-slaves-plugin", 3 | "branches": [{ "name": "1.30.x", "checked": true }, { "name": "ssh-slaves-2.0", "checked": true }], 4 | "labels": ["backport"] 5 | } 6 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | # editorconfig.org 2 | root = true 3 | 4 | [*] 5 | indent_style = space 6 | indent_size = 2 7 | end_of_line = lf 8 | charset = utf-8 9 | trim_trailing_whitespace = true 10 | insert_final_newline = true 11 | 12 | [Jenkinsfile*] 13 | indent_style = space 14 | indent_size = 2 15 | end_of_line = lf 16 | charset = utf-8 17 | trim_trailing_whitespace = true 18 | insert_final_newline = true 19 | 20 | [*.groovy] 21 | indent_style = space 22 | indent_size = 2 23 | end_of_line = lf 24 | charset = utf-8 25 | trim_trailing_whitespace = true 26 | insert_final_newline = true 27 | 28 | [*.py] 29 | indent_style = space 30 | indent_size = 4 31 | end_of_line = lf 32 | charset = utf-8 33 | trim_trailing_whitespace = true 34 | insert_final_newline = true 35 | 36 | [*.sh] 37 | indent_style = space 38 | indent_size = 2 39 | end_of_line = lf 40 | charset = utf-8 41 | trim_trailing_whitespace = true 42 | insert_final_newline = true 43 | 44 | [{Makefile,**.mk}] 45 | # Use tabs for indentation (Makefiles require tabs) 46 | indent_style = tab 47 | -------------------------------------------------------------------------------- /.github/CODEOWNERS: -------------------------------------------------------------------------------- 1 | * @jenkinsci/ssh-agents-plugin-developers 2 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | updates: 3 | - package-ecosystem: "maven" 4 | directory: "/" 5 | schedule: 6 | interval: "daily" 7 | - package-ecosystem: "github-actions" 8 | directory: / 9 | schedule: 10 | interval: "daily" 11 | - package-ecosystem: "docker" 12 | directory: /src/test/resources/hudson/plugins/sshslaves/agents 13 | schedule: 14 | interval: "daily" 15 | -------------------------------------------------------------------------------- /.github/release-drafter.yml: -------------------------------------------------------------------------------- 1 | # https://github.com/jenkinsci/.github/blob/master/.github/release-drafter.adoc 2 | # https://www.jenkins.io/doc/developer/publishing/releasing-cd/#release-notes 3 | _extends: .github 4 | 5 | -------------------------------------------------------------------------------- /.github/workflows/cd.yaml: -------------------------------------------------------------------------------- 1 | # Note: additional setup is required, see https://www.jenkins.io/redirect/continuous-delivery-of-plugins 2 | 3 | name: cd 4 | on: 5 | workflow_dispatch: 6 | check_run: 7 | types: 8 | - completed 9 | 10 | jobs: 11 | maven-cd: 12 | uses: jenkins-infra/github-reusable-workflows/.github/workflows/maven-cd.yml@v1 13 | secrets: 14 | MAVEN_USERNAME: ${{ secrets.MAVEN_USERNAME }} 15 | MAVEN_TOKEN: ${{ secrets.MAVEN_TOKEN }} 16 | -------------------------------------------------------------------------------- /.github/workflows/jenkins-security-scan.yml: -------------------------------------------------------------------------------- 1 | name: Jenkins Security Scan 2 | on: 3 | push: 4 | branches: 5 | - main 6 | # see https://github.com/jenkins-infra/jenkins-security-scan/issues/3 7 | # pull_request: 8 | # types: [ opened, synchronize, reopened ] 9 | workflow_dispatch: 10 | 11 | jobs: 12 | security-scan: 13 | uses: jenkins-infra/jenkins-security-scan/.github/workflows/jenkins-security-scan.yaml@v2 14 | with: 15 | java-cache: 'maven' # Optionally enable use of a build dependency cache. Specify 'maven' or 'gradle' as appropriate. 16 | # java-version: 21 # Optionally specify what version of Java to set up for the build, or remove to use a recent default. 17 | -------------------------------------------------------------------------------- /.github/workflows/ssh-agent-docker.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # Workdlow to build the SSH Agent Docker base image used on tests 3 | name: ssh-agent-docker 4 | on: 5 | workflow_dispatch: 6 | 7 | permissions: 8 | contents: read 9 | 10 | jobs: 11 | docker-image: 12 | runs-on: ubuntu-latest 13 | permissions: 14 | contents: read 15 | packages: write 16 | attestations: write 17 | id-token: write 18 | steps: 19 | - uses: actions/checkout@v4 20 | with: 21 | fetch-depth: 0 22 | ref: ${{ github.ref }} 23 | 24 | - name: Set up QEMU 25 | uses: docker/setup-qemu-action@v3 26 | 27 | - name: Set up Docker Buildx 28 | uses: docker/setup-buildx-action@v3 29 | 30 | - name: Login to GHCR 31 | uses: docker/login-action@v3 32 | with: 33 | registry: ghcr.io 34 | username: ${{ github.actor }} 35 | password: ${{ secrets.GITHUB_TOKEN }} 36 | 37 | - name: Extract metadata (tags, labels) for Docker 38 | id: meta 39 | uses: docker/metadata-action@v5 40 | with: 41 | images: | 42 | ghcr.io/${{ github.repository }} 43 | tags: | 44 | type=raw,prefix=base,value=latest,enable={{is_default_branch}} 45 | type=ref,prefix=base,event=branch 46 | type=ref,prefix=base,event=pr 47 | type=sha,prefix=base 48 | 49 | - name: Build and push 50 | uses: docker/build-push-action@v6 51 | id: build 52 | with: 53 | context: src/test/resources/hudson/plugins/sshslaves/agents/ssh-agent-base 54 | platforms: linux/amd64,linux/arm64 55 | push: true 56 | sbom: true 57 | provenance: mode=max 58 | labels: ${{ steps.meta.outputs.labels }} 59 | tags: ${{ steps.meta.outputs.tags }} 60 | 61 | - name: Write Summary 62 | run: | 63 | DOCKER_IMAGE="$(printenv DOCKER_METADATA_OUTPUT_JSON|jq -r '.tags[0]')" 64 | echo "docker pull ${DOCKER_IMAGE}" >> "${GITHUB_STEP_SUMMARY}" 65 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | target 2 | .idea 3 | *.iml 4 | *.ipr 5 | *.iws 6 | .classpath 7 | .project 8 | .settings 9 | work 10 | bin 11 | .DS_Store 12 | .vscode 13 | -------------------------------------------------------------------------------- /.mvn/extensions.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | io.jenkins.tools.incrementals 4 | git-changelist-maven-extension 5 | 1.8 6 | 7 | 8 | -------------------------------------------------------------------------------- /.mvn/maven.config: -------------------------------------------------------------------------------- 1 | -Pconsume-incrementals 2 | -Pmight-produce-incrementals 3 | -Dchangelist.format=%d.v%s 4 | -------------------------------------------------------------------------------- /Jenkinsfile: -------------------------------------------------------------------------------- 1 | /* 2 | See the documentation for more options: 3 | https://github.com/jenkins-infra/pipeline-library/ 4 | */ 5 | buildPlugin( 6 | useContainerAgent: false, // TestContainers 7 | configurations: [ 8 | [platform: 'linux', jdk: 21], 9 | [platform: 'windows', jdk: 17], 10 | ]) 11 | -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- 1 | The MIT License 2 | 3 | Copyright (c) 2004-, all the contributors 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | 23 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | SSH Build Agents Plugin for Jenkins 2 | ========================= 3 | 4 | [![Jenkins Plugin](https://img.shields.io/jenkins/plugin/v/ssh-slaves.svg)](https://plugins.jenkins.io/ssh-slaves) 5 | [![GitHub release](https://img.shields.io/github/release/jenkinsci/ssh-agents-plugin.svg?label=changelog)](https://github.com/jenkinsci/ssh-agents-plugin/releases/latest) 6 | [![Jenkins Plugin Installs](https://img.shields.io/jenkins/plugin/i/ssh-slaves.svg?color=blue)](https://plugins.jenkins.io/ssh-slaves) 7 | 8 | Provides a means to launch agents via SSH. 9 | 10 | ## Documentation 11 | 12 | * [Configure guide](doc/CONFIGURE.md) 13 | * [Troubleshooting guide](doc/TROUBLESHOOTING.md) 14 | * [Using the plugin with Cygwin on Windows](doc/CYGWIN.md) 15 | 16 | ## Changelog 17 | 18 | * For 1.30.0 and newer versions, see [GitHub Releases](https://github.com/jenkinsci/ssh-agents-plugin/releases) 19 | * For previous versions, see [this file](./CHANGELOG.md) 20 | 21 | ## Notes 22 | 23 | This plugin is formerly known as "SSH Slaves Plugin". 24 | It was renamed in [1.31.0](https://github.com/jenkinsci/ssh-agents-plugin/releases/tag/ssh-slaves-1.31.0), but the plugin ID was retained as `ssh-slaves` to retain compatibility for the plugin users. 25 | -------------------------------------------------------------------------------- /doc/images/availability-as-much.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jenkinsci/ssh-agents-plugin/eb498c58f3618f05f729bd28d3e509593b4c8b16/doc/images/availability-as-much.png -------------------------------------------------------------------------------- /doc/images/availability-on-demand.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jenkinsci/ssh-agents-plugin/eb498c58f3618f05f729bd28d3e509593b4c8b16/doc/images/availability-on-demand.png -------------------------------------------------------------------------------- /doc/images/availability-schedule.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jenkinsci/ssh-agents-plugin/eb498c58f3618f05f729bd28d3e509593b4c8b16/doc/images/availability-schedule.png -------------------------------------------------------------------------------- /doc/images/hkvs-known-hosts.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jenkinsci/ssh-agents-plugin/eb498c58f3618f05f729bd28d3e509593b4c8b16/doc/images/hkvs-known-hosts.png -------------------------------------------------------------------------------- /doc/images/hkvs-manual-key.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jenkinsci/ssh-agents-plugin/eb498c58f3618f05f729bd28d3e509593b4c8b16/doc/images/hkvs-manual-key.png -------------------------------------------------------------------------------- /doc/images/hkvs-no-verify.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jenkinsci/ssh-agents-plugin/eb498c58f3618f05f729bd28d3e509593b4c8b16/doc/images/hkvs-no-verify.png -------------------------------------------------------------------------------- /doc/images/hkvs-trusted-key.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jenkinsci/ssh-agents-plugin/eb498c58f3618f05f729bd28d3e509593b4c8b16/doc/images/hkvs-trusted-key.png -------------------------------------------------------------------------------- /doc/images/new-node-button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jenkinsci/ssh-agents-plugin/eb498c58f3618f05f729bd28d3e509593b4c8b16/doc/images/new-node-button.png -------------------------------------------------------------------------------- /doc/images/new-node-config.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jenkinsci/ssh-agents-plugin/eb498c58f3618f05f729bd28d3e509593b4c8b16/doc/images/new-node-config.png -------------------------------------------------------------------------------- /doc/images/ssh-credentials-domain.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jenkinsci/ssh-agents-plugin/eb498c58f3618f05f729bd28d3e509593b4c8b16/doc/images/ssh-credentials-domain.png -------------------------------------------------------------------------------- /doc/images/ssh-credentials-manage-detail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jenkinsci/ssh-agents-plugin/eb498c58f3618f05f729bd28d3e509593b4c8b16/doc/images/ssh-credentials-manage-detail.png -------------------------------------------------------------------------------- /doc/images/ssh-credentials-manage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jenkinsci/ssh-agents-plugin/eb498c58f3618f05f729bd28d3e509593b4c8b16/doc/images/ssh-credentials-manage.png -------------------------------------------------------------------------------- /doc/images/ssh-credentials-select.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jenkinsci/ssh-agents-plugin/eb498c58f3618f05f729bd28d3e509593b4c8b16/doc/images/ssh-credentials-select.png -------------------------------------------------------------------------------- /doc/images/ssh-node-advanced-config.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jenkinsci/ssh-agents-plugin/eb498c58f3618f05f729bd28d3e509593b4c8b16/doc/images/ssh-node-advanced-config.png -------------------------------------------------------------------------------- /doc/images/ssh-node-basic-config.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jenkinsci/ssh-agents-plugin/eb498c58f3618f05f729bd28d3e509593b4c8b16/doc/images/ssh-node-basic-config.png -------------------------------------------------------------------------------- /doc/images/ssh-node-launcher-config.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jenkinsci/ssh-agents-plugin/eb498c58f3618f05f729bd28d3e509593b4c8b16/doc/images/ssh-node-launcher-config.png -------------------------------------------------------------------------------- /src/main/java/hudson/plugins/sshslaves/verifiers/JenkinsTrilead9VersionSupport.java: -------------------------------------------------------------------------------- 1 | package hudson.plugins.sshslaves.verifiers; 2 | 3 | import com.trilead.ssh2.signature.KeyAlgorithm; 4 | import com.trilead.ssh2.signature.KeyAlgorithmManager; 5 | import hudson.plugins.sshslaves.Messages; 6 | import org.kohsuke.accmod.Restricted; 7 | import org.kohsuke.accmod.restrictions.NoExternalUse; 8 | 9 | import java.io.IOException; 10 | import java.util.ArrayList; 11 | import java.util.List; 12 | 13 | /** 14 | * @author Michael Clarke 15 | */ 16 | @Restricted(NoExternalUse.class) 17 | class JenkinsTrilead9VersionSupport extends TrileadVersionSupportManager.TrileadVersionSupport { 18 | 19 | @Override 20 | public String[] getSupportedAlgorithms() { 21 | List algorithms = new ArrayList<>(); 22 | for (KeyAlgorithm algorithm : KeyAlgorithmManager.getSupportedAlgorithms()) { 23 | algorithms.add(algorithm.getKeyFormat()); 24 | } 25 | return algorithms.toArray(new String[0]); 26 | } 27 | 28 | @Override 29 | public HostKey parseKey(String algorithm, byte[] keyValue) throws KeyParseException { 30 | for (KeyAlgorithm keyAlgorithm : KeyAlgorithmManager.getSupportedAlgorithms()) { 31 | try { 32 | if (keyAlgorithm.getKeyFormat().equals(algorithm)) { 33 | keyAlgorithm.decodePublicKey(keyValue); 34 | return new HostKey(algorithm, keyValue); 35 | } 36 | } catch (IOException ex) { 37 | throw new KeyParseException(Messages.ManualKeyProvidedHostKeyVerifier_KeyValueDoesNotParse(algorithm), ex); 38 | } 39 | } 40 | throw new KeyParseException("Unexpected key algorithm: " + algorithm); 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /src/main/java/hudson/plugins/sshslaves/verifiers/KeyParseException.java: -------------------------------------------------------------------------------- 1 | package hudson.plugins.sshslaves.verifiers; 2 | 3 | /** 4 | * @author Michael Clarke 5 | * @since 1.18 6 | */ 7 | public class KeyParseException extends Exception { 8 | 9 | public KeyParseException(String message) { 10 | super(message); 11 | } 12 | 13 | public KeyParseException(String message, Throwable cause) { 14 | super(message, cause); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/hudson/plugins/sshslaves/verifiers/MissingVerificationStrategyAdministrativeMonitor.java: -------------------------------------------------------------------------------- 1 | /* 2 | * The MIT License 3 | * 4 | * Copyright (c) 2016, Michael Clarke 5 | * 6 | * Permission is hereby granted, free of charge, to any person obtaining a copy 7 | * of this software and associated documentation files (the "Software"), to deal 8 | * in the Software without restriction, including without limitation the rights 9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | * copies of the Software, and to permit persons to whom the Software is 11 | * furnished to do so, subject to the following conditions: 12 | * 13 | * The above copyright notice and this permission notice shall be included in 14 | * all copies or substantial portions of the Software. 15 | * 16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | * THE SOFTWARE. 23 | */ 24 | package hudson.plugins.sshslaves.verifiers; 25 | 26 | import java.util.ArrayList; 27 | import java.util.List; 28 | import hudson.Extension; 29 | import hudson.model.AdministrativeMonitor; 30 | import hudson.model.Computer; 31 | import hudson.plugins.sshslaves.Messages; 32 | import hudson.plugins.sshslaves.SSHLauncher; 33 | import hudson.slaves.ComputerLauncher; 34 | import hudson.slaves.SlaveComputer; 35 | import jenkins.model.Jenkins; 36 | 37 | /** 38 | * An administrative warning that checks all SSH build agents have a {@link SshHostKeyVerificationStrategy} 39 | * set against them and prompts the admin to update the settings as needed. 40 | * @author Michael Clarke 41 | * @since 1.13 42 | */ 43 | @Extension 44 | public class MissingVerificationStrategyAdministrativeMonitor extends AdministrativeMonitor { 45 | private List agentNames; 46 | 47 | @Override 48 | public boolean isActivated() { 49 | agentNames = new ArrayList<>(); 50 | for (Computer computer : Jenkins.get().getComputers()) { 51 | if (computer instanceof SlaveComputer) { 52 | ComputerLauncher launcher = ((SlaveComputer) computer).getLauncher(); 53 | 54 | if (launcher instanceof SSHLauncher && null == ((SSHLauncher) launcher).getSshHostKeyVerificationStrategy()) { 55 | agentNames.add(computer.getDisplayName()); 56 | } 57 | } 58 | } 59 | return agentNames.size() > 0; 60 | } 61 | 62 | @Override 63 | public String getDisplayName() { 64 | return Messages.MissingVerificationStrategyAdministrativeMonitor_DisplayName(); 65 | } 66 | 67 | public String getAgentNames() { 68 | return agentNames != null ? agentNames.toString() : ""; 69 | } 70 | 71 | @Override 72 | public boolean isSecurity() { 73 | return true; 74 | } 75 | } 76 | -------------------------------------------------------------------------------- /src/main/java/hudson/plugins/sshslaves/verifiers/NonVerifyingKeyVerificationStrategy.java: -------------------------------------------------------------------------------- 1 | /* 2 | * The MIT License 3 | * 4 | * Copyright (c) 2016, Michael Clarke 5 | * 6 | * Permission is hereby granted, free of charge, to any person obtaining a copy 7 | * of this software and associated documentation files (the "Software"), to deal 8 | * in the Software without restriction, including without limitation the rights 9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | * copies of the Software, and to permit persons to whom the Software is 11 | * furnished to do so, subject to the following conditions: 12 | * 13 | * The above copyright notice and this permission notice shall be included in 14 | * all copies or substantial portions of the Software. 15 | * 16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | * THE SOFTWARE. 23 | */ 24 | package hudson.plugins.sshslaves.verifiers; 25 | 26 | import edu.umd.cs.findbugs.annotations.NonNull; 27 | import org.kohsuke.stapler.DataBoundConstructor; 28 | 29 | import hudson.Extension; 30 | import hudson.model.TaskListener; 31 | import hudson.plugins.sshslaves.Messages; 32 | import hudson.plugins.sshslaves.SSHLauncher; 33 | import hudson.slaves.SlaveComputer; 34 | 35 | /** 36 | * A verifier that performs no action on the host key, thereby allowing all connections. To 37 | * make it clear that no verification is being performed, a message is printed to connection 38 | * logs to indicate the key is not being checked and a man-in-the-middle attach may therefore 39 | * be possible against this connection. 40 | * @author Michael Clarke 41 | * @since 1.13 42 | */ 43 | public class NonVerifyingKeyVerificationStrategy extends SshHostKeyVerificationStrategy { 44 | 45 | @DataBoundConstructor 46 | public NonVerifyingKeyVerificationStrategy() { 47 | super(); 48 | } 49 | 50 | @Override 51 | public boolean verify(SlaveComputer computer, HostKey hostKey, TaskListener listener) { 52 | listener.getLogger().println(Messages.NonVerifyingHostKeyVerifier_NoVerificationWarning(SSHLauncher.getTimestamp())); 53 | return true; 54 | } 55 | 56 | @Extension 57 | public static class NonVerifyingKeyVerificationStrategyDescriptor extends SshHostKeyVerificationStrategyDescriptor { 58 | 59 | @NonNull 60 | @Override 61 | public String getDisplayName() { 62 | return Messages.NonVerifyingHostKeyVerifier_DescriptorDisplayName(); 63 | } 64 | 65 | } 66 | 67 | } 68 | -------------------------------------------------------------------------------- /src/main/resources/hudson/plugins/sshslaves/Messages_de.properties: -------------------------------------------------------------------------------- 1 | SSHLauncher.DescriptorDisplayName=Starte Agent \u00FCber SSH 2 | -------------------------------------------------------------------------------- /src/main/resources/hudson/plugins/sshslaves/Messages_zh_CN.properties: -------------------------------------------------------------------------------- 1 | # The MIT License 2 | # 3 | # Copyright (c) 2017, suren 4 | # 5 | # Permission is hereby granted, free of charge, to any person obtaining a copy 6 | # of this software and associated documentation files (the "Software"), to deal 7 | # in the Software without restriction, including without limitation the rights 8 | # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | # copies of the Software, and to permit persons to whom the Software is 10 | # furnished to do so, subject to the following conditions: 11 | # 12 | # The above copyright notice and this permission notice shall be included in 13 | # all copies or substantial portions of the Software. 14 | # 15 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | # THE SOFTWARE. 22 | 23 | SSHLauncher.CopyingAgentJar={0} [SSH] \u6B63\u5728\u62F7\u8D1D\u6700\u65B0\u7248\u672C\u7684 remoting.jar... 24 | SSHLauncher.ConnectionClosed={0} [SSH] \u8FDE\u63A5\u5173\u95ED\u3002 25 | SSHLauncher.ErrorWhileClosingConnection=\u5173\u95ED\u8FDE\u63A5\u65F6\u53D1\u751F\u5F02\u5E38\u3002 26 | SSHLauncher.AbortedDuringConnectionOpen=\u4ECE\u8282\u70B9\u542F\u52A8\u7EC8\u6B62\u3002 27 | SSHLauncher.AuthenticationSuccessful={0} [SSH] \u8BA4\u8BC1\u6210\u529F\u3002 28 | SSHLauncher.AuthenticationFailed={0} [SSH] \u8BA4\u8BC1\u5931\u8D25\u3002 29 | SSHLauncher.AuthenticationFailedException=\u8BA4\u8BC1\u5931\u8D25\u3002 30 | SSHConnector.LaunchTimeoutMustBeANumber=\u542F\u52A8\u8D85\u65F6\u65F6\u95F4\u5FC5\u987B\u4E3A\u6570\u5B57 31 | SSHConnector.LaunchTimeoutMustBePositive=\u542F\u52A8\u8D85\u65F6\u65F6\u95F4\u5FC5\u987B\u4E3A\u6B63\u6570 32 | SSHLauncher.SelectedCredentialsMissing=The selected credentials cannot be found 33 | SSHLauncher.PortNotANumber=\u7AEF\u53E3\u53F7\u5FC5\u987B\u662F\u6570\u5B57 34 | SSHLauncher.PortNotSpecified=\u5FC5\u987B\u6307\u5B9A\u7AEF\u53E3 35 | SSHLauncher.PortLessThanZero=\u7AEF\u53E3\u53F7\u5FC5\u987B\u5927\u4E8E 0 36 | SSHLauncher.PortMoreThan65535=\u7AEF\u53E3\u53F7\u5FC5\u987B\u5C0F\u4E8E 65536 37 | -------------------------------------------------------------------------------- /src/main/resources/hudson/plugins/sshslaves/SSHConnector/config.jelly: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | -------------------------------------------------------------------------------- /src/main/resources/hudson/plugins/sshslaves/SSHConnector/config_de.properties: -------------------------------------------------------------------------------- 1 | # The MIT License 2 | # 3 | # Copyright (c) 2014, Harald Albers 4 | # 5 | # Permission is hereby granted, free of charge, to any person obtaining a copy 6 | # of this software and associated documentation files (the "Software"), to deal 7 | # in the Software without restriction, including without limitation the rights 8 | # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | # copies of the Software, and to permit persons to whom the Software is 10 | # furnished to do so, subject to the following conditions: 11 | # 12 | # The above copyright notice and this permission notice shall be included in 13 | # all copies or substantial portions of the Software. 14 | # 15 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | # THE SOFTWARE. 22 | 23 | Credentials=Zugangsdaten 24 | JavaPath=Java-Pfad 25 | JVM\ Options=JVM-Optionen 26 | Prefix\ Start\ Agent\ Command=Pr\u00E4fix des Startkommandos 27 | Suffix\ Start\ Agent\ Command=Suffix des Startkommandos 28 | Connection\ Timeout\ in\ Seconds=Verbindungs-Timeout in Sekunden 29 | Maximum\ Number\ of\ Retries=Anzahl der Wiederholungen 30 | Seconds\ To\ Wait\ Between\ Retries=Sekunden zwischen Wiederholungen -------------------------------------------------------------------------------- /src/main/resources/hudson/plugins/sshslaves/SSHConnector/config_es.properties: -------------------------------------------------------------------------------- 1 | # The MIT License 2 | # 3 | # Copyright (c) 2004-2010, Sun Microsystems, Inc. 4 | # 5 | # Permission is hereby granted, free of charge, to any person obtaining a copy 6 | # of this software and associated documentation files (the "Software"), to deal 7 | # in the Software without restriction, including without limitation the rights 8 | # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | # copies of the Software, and to permit persons to whom the Software is 10 | # furnished to do so, subject to the following conditions: 11 | # 12 | # The above copyright notice and this permission notice shall be included in 13 | # all copies or substantial portions of the Software. 14 | # 15 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | # THE SOFTWARE. 22 | 23 | JVM\ Options=Opciones para java 24 | Port=Puerto 25 | -------------------------------------------------------------------------------- /src/main/resources/hudson/plugins/sshslaves/SSHConnector/config_fr.properties: -------------------------------------------------------------------------------- 1 | # The MIT License 2 | # 3 | # Copyright (c) 2004-2010, Sun Microsystems, Inc. 4 | # 5 | # Permission is hereby granted, free of charge, to any person obtaining a copy 6 | # of this software and associated documentation files (the "Software"), to deal 7 | # in the Software without restriction, including without limitation the rights 8 | # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | # copies of the Software, and to permit persons to whom the Software is 10 | # furnished to do so, subject to the following conditions: 11 | # 12 | # The above copyright notice and this permission notice shall be included in 13 | # all copies or substantial portions of the Software. 14 | # 15 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | # THE SOFTWARE. 22 | 23 | JVM\ Options=Options de la JVM 24 | -------------------------------------------------------------------------------- /src/main/resources/hudson/plugins/sshslaves/SSHConnector/config_ja.properties: -------------------------------------------------------------------------------- 1 | # The MIT License 2 | # 3 | # Copyright (c) 2004-2013, Sun Microsystems, Inc.Seiji Sogabe 4 | # 5 | # Permission is hereby granted, free of charge, to any person obtaining a copy 6 | # of this software and associated documentation files (the "Software"), to deal 7 | # in the Software without restriction, including without limitation the rights 8 | # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | # copies of the Software, and to permit persons to whom the Software is 10 | # furnished to do so, subject to the following conditions: 11 | # 12 | # The above copyright notice and this permission notice shall be included in 13 | # all copies or substantial portions of the Software. 14 | # 15 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | # THE SOFTWARE. 22 | 23 | Port=\u30dd\u30fc\u30c8 24 | JavaPath=Java\u306e\u30d1\u30b9 25 | JVM\ Options=JVM\u30aa\u30d7\u30b7\u30e7\u30f3 26 | Credentials=\u8a8d\u8a3c\u60c5\u5831 -------------------------------------------------------------------------------- /src/main/resources/hudson/plugins/sshslaves/SSHConnector/config_sv_SE.properties: -------------------------------------------------------------------------------- 1 | # The MIT License 2 | # 3 | # Copyright (c) 2004-2010, Sun Microsystems, Inc. 4 | # 5 | # Permission is hereby granted, free of charge, to any person obtaining a copy 6 | # of this software and associated documentation files (the "Software"), to deal 7 | # in the Software without restriction, including without limitation the rights 8 | # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | # copies of the Software, and to permit persons to whom the Software is 10 | # furnished to do so, subject to the following conditions: 11 | # 12 | # The above copyright notice and this permission notice shall be included in 13 | # all copies or substantial portions of the Software. 14 | # 15 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | # THE SOFTWARE. 22 | 23 | Host=V\u00E4rd 24 | JVM\ Options=JVM alternativ 25 | Port=Port 26 | -------------------------------------------------------------------------------- /src/main/resources/hudson/plugins/sshslaves/SSHConnector/config_zh_TW.properties: -------------------------------------------------------------------------------- 1 | # The MIT License 2 | # 3 | # Copyright (c) 2013, Chunghwa Telecom Co., Ltd., Pei-Tang Huang 4 | # 5 | # Permission is hereby granted, free of charge, to any person obtaining a copy 6 | # of this software and associated documentation files (the "Software"), to deal 7 | # in the Software without restriction, including without limitation the rights 8 | # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | # copies of the Software, and to permit persons to whom the Software is 10 | # furnished to do so, subject to the following conditions: 11 | # 12 | # The above copyright notice and this permission notice shall be included in 13 | # all copies or substantial portions of the Software. 14 | # 15 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | # THE SOFTWARE. 22 | 23 | Port=\u9023\u63a5\u57e0 24 | JavaPath=Java \u8def\u5f91 25 | JVM\ Options=JVM \u9078\u9805\u53c3\u6578 26 | Prefix\ Start\ Agent\ Command=Agent \u555f\u52d5\u6307\u4ee4\u524d\u7f6e\u5b57\u4e32 27 | Suffix\ Start\ Agent\ Command=Agent \u555f\u52d5\u6307\u4ee4\u5f8c\u7db4\u5b57\u4e32 28 | -------------------------------------------------------------------------------- /src/main/resources/hudson/plugins/sshslaves/SSHConnector/help-credentialsId.html: -------------------------------------------------------------------------------- 1 |
2 | Select the credentials to be used for logging in to the remote host. 3 |
-------------------------------------------------------------------------------- /src/main/resources/hudson/plugins/sshslaves/SSHConnector/help-credentialsId_ja.html: -------------------------------------------------------------------------------- 1 |
2 | リモートホストにログインする際に使用する認証情報を選択します。 3 |
-------------------------------------------------------------------------------- /src/main/resources/hudson/plugins/sshslaves/SSHConnector/help-credentialsId_zh_TW.html: -------------------------------------------------------------------------------- 1 |
2 | 選擇要登入遠端主機的憑證。 3 |
-------------------------------------------------------------------------------- /src/main/resources/hudson/plugins/sshslaves/SSHConnector/help-host.html: -------------------------------------------------------------------------------- 1 |
2 | Agent's Hostname or IP to connect. 3 |
4 | -------------------------------------------------------------------------------- /src/main/resources/hudson/plugins/sshslaves/SSHConnector/help-javaPath.html: -------------------------------------------------------------------------------- 1 |
2 |

This java Path will be used to start the jvm. (/mycustomjdkpath/bin/java ) 3 | If empty Jenkins will search java command in the agent 4 |

5 |

Expressions such as $key or ${key} may be declared in the java Path and will be expanded to values of matching 6 | keys declared in the list of environment variables of this node, or if not present, in the list of global 7 | environment variables.

8 |
9 | -------------------------------------------------------------------------------- /src/main/resources/hudson/plugins/sshslaves/SSHConnector/help-javaPath_ja.html: -------------------------------------------------------------------------------- 1 |
2 |

このJavaパスは、JVMを起動する際に使用するJavaコマンドのパスです。 3 | 未入力であれば、スレーブ内のJavaコマンドを探します。 4 |

5 |

$keyや${key}といった表記方法を使用すると、このノードの環境変数の値に展開されます。 6 | もし、存在しなければグローバル環境変数の値に展開します。 7 |

8 |
9 | -------------------------------------------------------------------------------- /src/main/resources/hudson/plugins/sshslaves/SSHConnector/help-javaPath_zh_TW.html: -------------------------------------------------------------------------------- 1 |
2 | 用來啟動 JVM 的 Java 路徑(/mycustomjdkpath/bin/java )。 3 | 不填的話 Jenkins 會在 agent 搜尋 java 指令。 4 | 5 |

6 | Java 路徑裡可以用 $key 或 ${key} 這類表示式,對應到的名稱會被節點的環境變數值取代,如果節點上面沒有設定該變數,就會用全域的環境變數值取代。 7 |

8 | -------------------------------------------------------------------------------- /src/main/resources/hudson/plugins/sshslaves/SSHConnector/help-jvmOptions.html: -------------------------------------------------------------------------------- 1 |
2 | Additional arguments for the JVM, such as -Xmx or GC options. 3 |
4 | -------------------------------------------------------------------------------- /src/main/resources/hudson/plugins/sshslaves/SSHConnector/help-launchTimeoutSeconds.html: -------------------------------------------------------------------------------- 1 |
2 |

3 | Set the timeout value for ssh agent launch in seconds. If empty, it will be reset to default value. 4 |

5 |

6 | This will only set the timeout for agent launching; once launched, the timeout will not apply. 7 |

8 |
9 | -------------------------------------------------------------------------------- /src/main/resources/hudson/plugins/sshslaves/SSHConnector/help-maxNumRetries.html: -------------------------------------------------------------------------------- 1 |
2 |

3 | Set the number of times the SSH connection will be retried if the initial connection results in an error. 4 | If empty, it will be reset to default value. 5 |

6 |
7 | -------------------------------------------------------------------------------- /src/main/resources/hudson/plugins/sshslaves/SSHConnector/help-port.html: -------------------------------------------------------------------------------- 1 |
2 | The TCP port on which the agent's SSH daemon is listening, usually 22. 3 |
4 | -------------------------------------------------------------------------------- /src/main/resources/hudson/plugins/sshslaves/SSHConnector/help-prefixStartSlaveCmd.html: -------------------------------------------------------------------------------- 1 |
2 |

What you enter here will be prepended to the launch command.

3 |

The actual command being issued will be the concatenation of Prefix Start Agent Command, 4 | the command to launch remoting.jar and Suffix Start Agent Command, without any separators. 5 |

-------------------------------------------------------------------------------- /src/main/resources/hudson/plugins/sshslaves/SSHConnector/help-retryWaitTime.html: -------------------------------------------------------------------------------- 1 |
2 |

3 | Set the number of seconds to wait between retry attempts of the initial SSH connection. 4 |

5 |
6 | -------------------------------------------------------------------------------- /src/main/resources/hudson/plugins/sshslaves/SSHConnector/help-sshHostKeyVerificationStrategy.html: -------------------------------------------------------------------------------- 1 |

Controls how Jenkins verifies the SSH key presented by the remote host whilst connecting.

2 | -------------------------------------------------------------------------------- /src/main/resources/hudson/plugins/sshslaves/SSHConnector/help-suffixStartSlaveCmd.html: -------------------------------------------------------------------------------- 1 |
2 |

What you enter here will be appended to the launch command.

3 |

The actual command being issued will be the concatenation of Prefix Start Agent Command, 4 | the command to launch remoting.jar and Suffix Start Agent Command, without any separators. 5 | The Suffix Start Agent Command can be used to pass arguments to remoting.jar.

6 |
-------------------------------------------------------------------------------- /src/main/resources/hudson/plugins/sshslaves/SSHConnector/help-tcpNoDelay.html: -------------------------------------------------------------------------------- 1 |
2 | Enable/Disables the TCP_NODELAY flag on the SSH connection. 3 | If set, disable the Nagle algorithm. This means that segments are always sent as soon as possible, 4 | even if there is only a small amount of data. When not set, 5 | data is buffered until there is a sufficient amount to send out, 6 | thereby avoiding the frequent sending of small packets, which results in poor utilization of the network. 7 |
-------------------------------------------------------------------------------- /src/main/resources/hudson/plugins/sshslaves/SSHConnector/help-workDir.html: -------------------------------------------------------------------------------- 1 |
2 | The Remoting work directory is an internal data storage, which may be used by Remoting to store caches, logs and other metadata. 3 | For more details see Remoting Work directory 4 | If remoting parameter "-workDir PATH" or "-jar-cache PATH" is set in Suffix Start Agent Command this field will be ignored. 5 | If empty, the Remote root directory is used as Remoting Work directory 6 |
-------------------------------------------------------------------------------- /src/main/resources/hudson/plugins/sshslaves/SSHLauncher/config.jelly: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /src/main/resources/hudson/plugins/sshslaves/SSHLauncher/config_de.properties: -------------------------------------------------------------------------------- 1 | # The MIT License 2 | # 3 | # Copyright (c) 2014, Harald Albers 4 | # 5 | # Permission is hereby granted, free of charge, to any person obtaining a copy 6 | # of this software and associated documentation files (the "Software"), to deal 7 | # in the Software without restriction, including without limitation the rights 8 | # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | # copies of the Software, and to permit persons to whom the Software is 10 | # furnished to do so, subject to the following conditions: 11 | # 12 | # The above copyright notice and this permission notice shall be included in 13 | # all copies or substantial portions of the Software. 14 | # 15 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | # THE SOFTWARE. 22 | 23 | Host=Hostname 24 | -------------------------------------------------------------------------------- /src/main/resources/hudson/plugins/sshslaves/SSHLauncher/config_es.properties: -------------------------------------------------------------------------------- 1 | # The MIT License 2 | # 3 | # Copyright (c) 2004-2010, Sun Microsystems, Inc. 4 | # 5 | # Permission is hereby granted, free of charge, to any person obtaining a copy 6 | # of this software and associated documentation files (the "Software"), to deal 7 | # in the Software without restriction, including without limitation the rights 8 | # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | # copies of the Software, and to permit persons to whom the Software is 10 | # furnished to do so, subject to the following conditions: 11 | # 12 | # The above copyright notice and this permission notice shall be included in 13 | # all copies or substantial portions of the Software. 14 | # 15 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | # THE SOFTWARE. 22 | 23 | Host=Nombre de m\u00E1quina 24 | -------------------------------------------------------------------------------- /src/main/resources/hudson/plugins/sshslaves/SSHLauncher/config_ja.properties: -------------------------------------------------------------------------------- 1 | # The MIT License 2 | # 3 | # Copyright (c) 2004-2010, Sun Microsystems, Inc.Seiji Sogabe 4 | # 5 | # Permission is hereby granted, free of charge, to any person obtaining a copy 6 | # of this software and associated documentation files (the "Software"), to deal 7 | # in the Software without restriction, including without limitation the rights 8 | # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | # copies of the Software, and to permit persons to whom the Software is 10 | # furnished to do so, subject to the following conditions: 11 | # 12 | # The above copyright notice and this permission notice shall be included in 13 | # all copies or substantial portions of the Software. 14 | # 15 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | # THE SOFTWARE. 22 | 23 | Host=\u30db\u30b9\u30c8 24 | -------------------------------------------------------------------------------- /src/main/resources/hudson/plugins/sshslaves/SSHLauncher/config_sv_SE.properties: -------------------------------------------------------------------------------- 1 | # The MIT License 2 | # 3 | # Copyright (c) 2004-2010, Sun Microsystems, Inc. 4 | # 5 | # Permission is hereby granted, free of charge, to any person obtaining a copy 6 | # of this software and associated documentation files (the "Software"), to deal 7 | # in the Software without restriction, including without limitation the rights 8 | # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | # copies of the Software, and to permit persons to whom the Software is 10 | # furnished to do so, subject to the following conditions: 11 | # 12 | # The above copyright notice and this permission notice shall be included in 13 | # all copies or substantial portions of the Software. 14 | # 15 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | # THE SOFTWARE. 22 | 23 | Host=V\u00E4rd 24 | JVM\ Options=JVM alternativ 25 | Password=L\u00F6senord 26 | Port=Port 27 | Private\ Key\ File=Privatnyckelfil 28 | Username=Anv\u00E4ndarnamn 29 | -------------------------------------------------------------------------------- /src/main/resources/hudson/plugins/sshslaves/SSHLauncher/config_zh_TW.properties: -------------------------------------------------------------------------------- 1 | # The MIT License 2 | # 3 | # Copyright (c) 2013, Chunghwa Telecom Co., Ltd., Pei-Tang Huang 4 | # 5 | # Permission is hereby granted, free of charge, to any person obtaining a copy 6 | # of this software and associated documentation files (the "Software"), to deal 7 | # in the Software without restriction, including without limitation the rights 8 | # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | # copies of the Software, and to permit persons to whom the Software is 10 | # furnished to do so, subject to the following conditions: 11 | # 12 | # The above copyright notice and this permission notice shall be included in 13 | # all copies or substantial portions of the Software. 14 | # 15 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | # THE SOFTWARE. 22 | 23 | Host=\u4e3b\u6a5f 24 | -------------------------------------------------------------------------------- /src/main/resources/hudson/plugins/sshslaves/SSHLauncher/help.jelly: -------------------------------------------------------------------------------- 1 | 24 | 25 | 26 | 27 | ${%blurb} 28 | -------------------------------------------------------------------------------- /src/main/resources/hudson/plugins/sshslaves/SSHLauncher/help.properties: -------------------------------------------------------------------------------- 1 | # The MIT License 2 | # 3 | # Copyright (c) 2014, Harald Albers 4 | # 5 | # Permission is hereby granted, free of charge, to any person obtaining a copy 6 | # of this software and associated documentation files (the "Software"), to deal 7 | # in the Software without restriction, including without limitation the rights 8 | # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | # copies of the Software, and to permit persons to whom the Software is 10 | # furnished to do so, subject to the following conditions: 11 | # 12 | # The above copyright notice and this permission notice shall be included in 13 | # all copies or substantial portions of the Software. 14 | # 15 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | # THE SOFTWARE. 22 | 23 | blurb=Starts an agent by sending commands over a secure SSH connection. \ 24 | The agent needs to be reachable from the Jenkins controller, and you will have to supply an \ 25 | account that can log in on the target machine. No root privileges are required. 26 | -------------------------------------------------------------------------------- /src/main/resources/hudson/plugins/sshslaves/SSHLauncher/help_de.properties: -------------------------------------------------------------------------------- 1 | # The MIT License 2 | # 3 | # Copyright (c) 2014, Harald Albers 4 | # 5 | # Permission is hereby granted, free of charge, to any person obtaining a copy 6 | # of this software and associated documentation files (the "Software"), to deal 7 | # in the Software without restriction, including without limitation the rights 8 | # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | # copies of the Software, and to permit persons to whom the Software is 10 | # furnished to do so, subject to the following conditions: 11 | # 12 | # The above copyright notice and this permission notice shall be included in 13 | # all copies or substantial portions of the Software. 14 | # 15 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | # THE SOFTWARE. 22 | 23 | blurb=Startet einen Agent durch Kommandos, die \u00FCber eine gesicherte SSH-Verbindung \ 24 | gesendet werden. \ 25 | Der Agent muss dazu vom Controller aus erreichbar sein, und Sie m\u00FCssen einen \ 26 | Benutzeraccount mit Login-Rechten auf dem Agent angeben. \ 27 | Root-Rechte sind f\u00FCr diesen Account nicht erforderlich. 28 | -------------------------------------------------------------------------------- /src/main/resources/hudson/plugins/sshslaves/verifiers/KnownHostsFileKeyVerificationStrategy/config.jelly: -------------------------------------------------------------------------------- 1 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /src/main/resources/hudson/plugins/sshslaves/verifiers/KnownHostsFileKeyVerificationStrategy/help.html: -------------------------------------------------------------------------------- 1 |

Checks the known_hosts file (~/.ssh/known_hosts) for the user Jenkins is executing under, to see if an entry exists that matches the current connection.

2 |

This method does not make any updates to the Known Hosts file, instead using the file as a read-only source and expecting someone with suitable access to the appropriate user account on the Jenkins controller to update the file as required, potentially using the ssh hostname command to initiate a connection and update the file appropriately.

3 | -------------------------------------------------------------------------------- /src/main/resources/hudson/plugins/sshslaves/verifiers/ManuallyProvidedKeyVerificationStrategy/config.jelly: -------------------------------------------------------------------------------- 1 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /src/main/resources/hudson/plugins/sshslaves/verifiers/ManuallyProvidedKeyVerificationStrategy/help-key.html: -------------------------------------------------------------------------------- 1 |

The SSH key expected for this connection. This key should be in the form `algorithm value` where algorithm is one of ssh-rsa, ssh-ed25519, ecdsa-sha2-nistp256 or ssh-dss and value is the Base 64 encoded content of the key.

2 | -------------------------------------------------------------------------------- /src/main/resources/hudson/plugins/sshslaves/verifiers/ManuallyProvidedKeyVerificationStrategy/help.html: -------------------------------------------------------------------------------- 1 |
2 |

Checks the key provided by the remote host matches the key set by the user who configured this connection.

3 |
4 | -------------------------------------------------------------------------------- /src/main/resources/hudson/plugins/sshslaves/verifiers/ManuallyTrustedKeyVerificationStrategy/config.jelly: -------------------------------------------------------------------------------- 1 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /src/main/resources/hudson/plugins/sshslaves/verifiers/ManuallyTrustedKeyVerificationStrategy/help-requireInitialManualTrust.html: -------------------------------------------------------------------------------- 1 |

Require a user with Computer.CONFIGURE permission to authorise the key presented during the first connection to this host before the connection will be allowed to be established.

2 |

If this option is not enabled then the key presented on first connection for this host will be automatically trusted and allowed for all subsequent connections without any manual intervention.

3 | -------------------------------------------------------------------------------- /src/main/resources/hudson/plugins/sshslaves/verifiers/ManuallyTrustedKeyVerificationStrategy/help.html: -------------------------------------------------------------------------------- 1 |

Checks the remote key matches the key currently marked as trusted for this host.

2 |

Depending on configuration, the key will be automatically trusted for the first connection, or an authorised user will be asked to approve the key. An authorised user will be required to approve any new key that gets presented by the remote host.

3 | -------------------------------------------------------------------------------- /src/main/resources/hudson/plugins/sshslaves/verifiers/MissingVerificationStrategyAdministrativeMonitor/message.jelly: -------------------------------------------------------------------------------- 1 | 24 | 25 | 26 | 27 |
28 |

SSH Host Key Verifiers are not configured for all SSH agents on this Jenkins instance. This could leave these agents open to man-in-the-middle attacks. Update your agent configuration to resolve this.

29 |

Agents without SSH Host Key Verifiers: 30 | ${it.getAgentNames()} 31 |

32 |
33 | 34 |
35 | -------------------------------------------------------------------------------- /src/main/resources/hudson/plugins/sshslaves/verifiers/NonVerifyingKeyVerificationStrategy/config.jelly: -------------------------------------------------------------------------------- 1 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /src/main/resources/hudson/plugins/sshslaves/verifiers/NonVerifyingKeyVerificationStrategy/help.html: -------------------------------------------------------------------------------- 1 |

Does not perform any verification of the SSH key presented by the remote host, allowing all connections regardless of the key they present.

2 | -------------------------------------------------------------------------------- /src/main/resources/hudson/plugins/sshslaves/verifiers/TrustHostKeyAction/trustHostKey.jelly: -------------------------------------------------------------------------------- 1 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 |

${%newKeyTrust(it.hostKey.fingerprint)}

41 |
42 | 43 |

${%replaceKeyTrust(existingHostKey.fingerprint, it.hostKey.fingerprint)}

44 |
45 |
46 | 47 | 48 |
49 |
50 |
51 |
52 | -------------------------------------------------------------------------------- /src/main/resources/hudson/plugins/sshslaves/verifiers/TrustHostKeyAction/trustHostKey.properties: -------------------------------------------------------------------------------- 1 | newKeyTrust=Do you want to trust the SSH Host Key with fingerprint {0} for future connections to this host? 2 | replaceKeyTrust=Do you want to replace the SSH Host Key with fingerprint {0} with the SSH Host Key with fingerprint {1} for all future connections to this host? -------------------------------------------------------------------------------- /src/main/resources/index.jelly: -------------------------------------------------------------------------------- 1 | 2 |
3 | Allows to launch agents over SSH, using a Java implementation of the SSH protocol. 4 |
5 | -------------------------------------------------------------------------------- /src/test/java/hudson/plugins/sshslaves/SSHLauncherCasCRoundTripTest.java: -------------------------------------------------------------------------------- 1 | package hudson.plugins.sshslaves; 2 | 3 | import hudson.model.Node; 4 | import hudson.slaves.SlaveComputer; 5 | import io.jenkins.plugins.casc.misc.junit.jupiter.AbstractRoundTripTest; 6 | import org.jvnet.hudson.test.JenkinsRule; 7 | import org.jvnet.hudson.test.junit.jupiter.WithJenkins; 8 | 9 | import static org.junit.jupiter.api.Assertions.assertEquals; 10 | import static org.junit.jupiter.api.Assertions.assertNotNull; 11 | 12 | @WithJenkins 13 | class SSHLauncherCasCRoundTripTest extends AbstractRoundTripTest { 14 | 15 | @Override 16 | protected void assertConfiguredAsExpected(JenkinsRule jenkins, String s) { 17 | final Node node = jenkins.jenkins.getNode("this-ssh-agent"); 18 | assertNotNull(node); 19 | 20 | SlaveComputer computer = (SlaveComputer) node.toComputer(); 21 | assertNotNull(computer); 22 | 23 | SSHLauncher launcher = (SSHLauncher) computer.getLauncher(); 24 | assertNotNull(launcher); 25 | 26 | assertEquals("ssh-host", launcher.getHost()); 27 | assertEquals(2222, launcher.getPort()); 28 | assertEquals("-DuberImportantParam=uberImportantValue", launcher.getJvmOptions()); 29 | } 30 | 31 | @Override 32 | protected String stringInLogExpected() { 33 | return "Setting class hudson.plugins.sshslaves.SSHLauncher.host = ssh-host"; 34 | } 35 | 36 | @Override 37 | protected String configResource() { 38 | return "SSHCasCConfig.yml"; 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /src/test/java/hudson/plugins/sshslaves/SSHLauncherCasCSupportTest.java: -------------------------------------------------------------------------------- 1 | package hudson.plugins.sshslaves; 2 | 3 | import hudson.model.Node; 4 | import hudson.slaves.SlaveComputer; 5 | import io.jenkins.plugins.casc.misc.ConfiguredWithCode; 6 | import io.jenkins.plugins.casc.misc.JenkinsConfiguredWithCodeRule; 7 | import io.jenkins.plugins.casc.misc.junit.jupiter.WithJenkinsConfiguredWithCode; 8 | import org.junit.jupiter.api.Test; 9 | 10 | import static org.junit.jupiter.api.Assertions.assertEquals; 11 | import static org.junit.jupiter.api.Assertions.assertNotNull; 12 | 13 | @WithJenkinsConfiguredWithCode 14 | class SSHLauncherCasCSupportTest { 15 | 16 | @Test 17 | @ConfiguredWithCode("SSHCasCConfig.yml") 18 | void shouldBeAbleToConfigureSSHSlaves(JenkinsConfiguredWithCodeRule j) { 19 | validateConfiguration(j); 20 | } 21 | 22 | @Test 23 | @ConfiguredWithCode("SSHCasCConfigLegacy.yml") 24 | void shouldBeAbleToConfigureLegacySSHSlaves(JenkinsConfiguredWithCodeRule j) { 25 | validateConfiguration(j); 26 | } 27 | 28 | private static void validateConfiguration(JenkinsConfiguredWithCodeRule j) { 29 | final Node node = j.jenkins.getNode("this-ssh-agent"); 30 | assertNotNull(node); 31 | 32 | SlaveComputer computer = (SlaveComputer) node.toComputer(); 33 | assertNotNull(computer); 34 | 35 | SSHLauncher launcher = (SSHLauncher) computer.getLauncher(); 36 | assertNotNull(launcher); 37 | 38 | assertEquals("ssh-host", launcher.getHost()); 39 | assertEquals(2222, launcher.getPort()); 40 | assertEquals("-DuberImportantParam=uberImportantValue", launcher.getJvmOptions()); 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /src/test/java/hudson/plugins/sshslaves/agents/AgentCurve25519Sha256ConnectionTest.java: -------------------------------------------------------------------------------- 1 | package hudson.plugins.sshslaves.agents; 2 | 3 | import static hudson.plugins.sshslaves.tags.TestTags.AGENT_SSH_TEST; 4 | import static hudson.plugins.sshslaves.tags.TestTags.SSH_KEX_TEST; 5 | 6 | import org.junit.jupiter.api.Tag; 7 | import org.testcontainers.containers.GenericContainer; 8 | import org.testcontainers.images.builder.ImageFromDockerfile; 9 | import org.testcontainers.junit.jupiter.Container; 10 | 11 | /** 12 | * Connect to a remote SSH Agent 13 | * 14 | * @author Kuisathaverat 15 | */ 16 | @Tag(AGENT_SSH_TEST) 17 | @Tag(SSH_KEX_TEST) 18 | class AgentCurve25519Sha256ConnectionTest extends AgentConnectionBaseTest { 19 | private static final String SSH_AGENT_NAME = "ssh-agent-curve25519-sha256"; 20 | private static final String SSH_KEY_PATH = "ssh/rsa-key"; 21 | private static final String SSH_KEY_PUB_PATH = "ssh/rsa-key.pub"; 22 | 23 | @Container 24 | private static final GenericContainer agentContainer = new GenericContainer<>( 25 | new ImageFromDockerfile(SSH_AGENT_NAME, false) 26 | .withFileFromClasspath(SSH_AUTHORIZED_KEYS, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + SSH_AUTHORIZED_KEYS) 27 | .withFileFromClasspath(SSH_KEY_PATH, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + SSH_KEY_PATH) 28 | .withFileFromClasspath(SSH_KEY_PUB_PATH, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + SSH_KEY_PUB_PATH) 29 | .withFileFromClasspath(SSH_SSHD_CONFIG, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + SSH_SSHD_CONFIG) 30 | .withFileFromClasspath(DOCKERFILE, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + DOCKERFILE)) 31 | .withExposedPorts(SSH_PORT); 32 | 33 | @Override 34 | protected String getAgentName() { 35 | return SSH_AGENT_NAME; 36 | } 37 | 38 | @Override 39 | protected GenericContainer getAgentContainer() { 40 | return agentContainer; 41 | } 42 | 43 | @Override 44 | protected String getAgentSshKeyPath() { 45 | return SSH_AGENT_NAME + "/" + SSH_KEY_PATH; 46 | } 47 | 48 | } 49 | -------------------------------------------------------------------------------- /src/test/java/hudson/plugins/sshslaves/agents/AgentDSAConnectionTest.java: -------------------------------------------------------------------------------- 1 | package hudson.plugins.sshslaves.agents; 2 | 3 | import static hudson.plugins.sshslaves.tags.TestTags.AGENT_SSH_TEST; 4 | import static hudson.plugins.sshslaves.tags.TestTags.SSH_KEY_AUTHENTICATION_TEST; 5 | 6 | import org.junit.jupiter.api.Disabled; 7 | import org.junit.jupiter.api.Tag; 8 | import org.testcontainers.containers.GenericContainer; 9 | import org.testcontainers.images.builder.ImageFromDockerfile; 10 | import org.testcontainers.junit.jupiter.Container; 11 | 12 | /** 13 | * Connect to a remote SSH Agent 14 | * 15 | * @author Kuisathaverat 16 | */ 17 | @Disabled("Only for manual test.") 18 | @Tag(AGENT_SSH_TEST) 19 | @Tag(SSH_KEY_AUTHENTICATION_TEST) 20 | class AgentDSAConnectionTest extends AgentConnectionBaseTest { 21 | private static final String SSH_AGENT_NAME = "ssh-agent-dsa"; 22 | private static final String SSH_KEY_PATH = "ssh/dsakey"; 23 | private static final String SSH_KEY_PUB_PATH = "ssh/dsakey.pub"; 24 | 25 | @Container 26 | private static final GenericContainer agentContainer = new GenericContainer<>( 27 | new ImageFromDockerfile(SSH_AGENT_NAME, false) 28 | .withFileFromClasspath(SSH_AUTHORIZED_KEYS, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + SSH_AUTHORIZED_KEYS) 29 | .withFileFromClasspath(SSH_KEY_PATH, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + SSH_KEY_PATH) 30 | .withFileFromClasspath(SSH_KEY_PUB_PATH, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + SSH_KEY_PUB_PATH) 31 | .withFileFromClasspath(SSH_SSHD_CONFIG, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + SSH_SSHD_CONFIG) 32 | .withFileFromClasspath(DOCKERFILE, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + DOCKERFILE)) 33 | .withExposedPorts(SSH_PORT); 34 | 35 | @Override 36 | protected String getAgentName() { 37 | return SSH_AGENT_NAME; 38 | } 39 | 40 | @Override 41 | protected GenericContainer getAgentContainer() { 42 | return agentContainer; 43 | } 44 | 45 | @Override 46 | protected String getAgentSshKeyPath() { 47 | return SSH_AGENT_NAME + "/" + SSH_KEY_PATH; 48 | } 49 | 50 | } 51 | -------------------------------------------------------------------------------- /src/test/java/hudson/plugins/sshslaves/agents/AgentECConnectionTest.java: -------------------------------------------------------------------------------- 1 | package hudson.plugins.sshslaves.agents; 2 | 3 | import static hudson.plugins.sshslaves.tags.TestTags.AGENT_SSH_TEST; 4 | import static hudson.plugins.sshslaves.tags.TestTags.SSH_KEY_AUTHENTICATION_TEST; 5 | 6 | import org.junit.jupiter.api.Tag; 7 | import org.testcontainers.containers.GenericContainer; 8 | import org.testcontainers.images.builder.ImageFromDockerfile; 9 | import org.testcontainers.junit.jupiter.Container; 10 | 11 | /** 12 | * Connect to a remote SSH Agent 13 | * 14 | * @author Kuisathaverat 15 | */ 16 | @Tag(AGENT_SSH_TEST) 17 | @Tag(SSH_KEY_AUTHENTICATION_TEST) 18 | class AgentECConnectionTest extends AgentConnectionBaseTest { 19 | private static final String SSH_AGENT_NAME = "ssh-agent-ec"; 20 | private static final String SSH_KEY_PATH = "ssh/ecdsakey"; 21 | private static final String SSH_KEY_PUB_PATH = "ssh/ecdsakey.pub"; 22 | 23 | @Container 24 | private static final GenericContainer agentContainer = new GenericContainer<>( 25 | new ImageFromDockerfile(SSH_AGENT_NAME, false) 26 | .withFileFromClasspath(SSH_AUTHORIZED_KEYS, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + SSH_AUTHORIZED_KEYS) 27 | .withFileFromClasspath(SSH_KEY_PATH, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + SSH_KEY_PATH) 28 | .withFileFromClasspath(SSH_KEY_PUB_PATH, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + SSH_KEY_PUB_PATH) 29 | .withFileFromClasspath(SSH_SSHD_CONFIG, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + SSH_SSHD_CONFIG) 30 | .withFileFromClasspath(DOCKERFILE, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + DOCKERFILE)) 31 | .withExposedPorts(SSH_PORT); 32 | 33 | @Override 34 | protected String getAgentName() { 35 | return SSH_AGENT_NAME; 36 | } 37 | 38 | @Override 39 | protected GenericContainer getAgentContainer() { 40 | return agentContainer; 41 | } 42 | 43 | @Override 44 | protected String getAgentSshKeyPath() { 45 | return SSH_AGENT_NAME + "/" + SSH_KEY_PATH; 46 | } 47 | 48 | } 49 | -------------------------------------------------------------------------------- /src/test/java/hudson/plugins/sshslaves/agents/AgentECDHSha2Nistp256ConnectionTest.java: -------------------------------------------------------------------------------- 1 | package hudson.plugins.sshslaves.agents; 2 | 3 | import static hudson.plugins.sshslaves.tags.TestTags.AGENT_SSH_TEST; 4 | import static hudson.plugins.sshslaves.tags.TestTags.SSH_KEX_TEST; 5 | 6 | import org.junit.jupiter.api.Disabled; 7 | import org.junit.jupiter.api.Tag; 8 | import org.testcontainers.containers.GenericContainer; 9 | import org.testcontainers.images.builder.ImageFromDockerfile; 10 | import org.testcontainers.junit.jupiter.Container; 11 | 12 | /** 13 | * Connect to a remote SSH Agent 14 | * 15 | * @author Kuisathaverat 16 | */ 17 | @Disabled("Only for manual test.") 18 | @Tag(AGENT_SSH_TEST) 19 | @Tag(SSH_KEX_TEST) 20 | class AgentECDHSha2Nistp256ConnectionTest extends AgentConnectionBaseTest { 21 | private static final String SSH_AGENT_NAME = "ssh-agent-ecdh-sha2-nistp256"; 22 | private static final String SSH_KEY_PATH = "ssh/rsa-key"; 23 | private static final String SSH_KEY_PUB_PATH = "ssh/rsa-key.pub"; 24 | 25 | @Container 26 | private static final GenericContainer agentContainer = new GenericContainer<>( 27 | new ImageFromDockerfile(SSH_AGENT_NAME, false) 28 | .withFileFromClasspath(SSH_AUTHORIZED_KEYS, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + SSH_AUTHORIZED_KEYS) 29 | .withFileFromClasspath(SSH_KEY_PATH, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + SSH_KEY_PATH) 30 | .withFileFromClasspath(SSH_KEY_PUB_PATH, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + SSH_KEY_PUB_PATH) 31 | .withFileFromClasspath(SSH_SSHD_CONFIG, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + SSH_SSHD_CONFIG) 32 | .withFileFromClasspath(DOCKERFILE, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + DOCKERFILE)) 33 | .withExposedPorts(SSH_PORT); 34 | 35 | @Override 36 | protected String getAgentName() { 37 | return SSH_AGENT_NAME; 38 | } 39 | 40 | @Override 41 | protected GenericContainer getAgentContainer() { 42 | return agentContainer; 43 | } 44 | 45 | @Override 46 | protected String getAgentSshKeyPath() { 47 | return SSH_AGENT_NAME + "/" + SSH_KEY_PATH; 48 | } 49 | 50 | } 51 | -------------------------------------------------------------------------------- /src/test/java/hudson/plugins/sshslaves/agents/AgentECDHSha2Nistp384ConnectionTest.java: -------------------------------------------------------------------------------- 1 | package hudson.plugins.sshslaves.agents; 2 | 3 | import static hudson.plugins.sshslaves.tags.TestTags.AGENT_SSH_TEST; 4 | import static hudson.plugins.sshslaves.tags.TestTags.SSH_KEX_TEST; 5 | 6 | import org.junit.jupiter.api.Disabled; 7 | import org.junit.jupiter.api.Tag; 8 | import org.testcontainers.containers.GenericContainer; 9 | import org.testcontainers.images.builder.ImageFromDockerfile; 10 | import org.testcontainers.junit.jupiter.Container; 11 | 12 | /** 13 | * Connect to a remote SSH Agent 14 | * 15 | * @author Kuisathaverat 16 | */ 17 | @Disabled("Only for manual test.") 18 | @Tag(AGENT_SSH_TEST) 19 | @Tag(SSH_KEX_TEST) 20 | class AgentECDHSha2Nistp384ConnectionTest extends AgentConnectionBaseTest { 21 | private static final String SSH_AGENT_NAME = "ssh-agent-ecdh-sha2-nistp384"; 22 | private static final String SSH_KEY_PATH = "ssh/rsa-key"; 23 | private static final String SSH_KEY_PUB_PATH = "ssh/rsa-key.pub"; 24 | 25 | @Container 26 | private static final GenericContainer agentContainer = new GenericContainer<>( 27 | new ImageFromDockerfile(SSH_AGENT_NAME, false) 28 | .withFileFromClasspath(SSH_AUTHORIZED_KEYS, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + SSH_AUTHORIZED_KEYS) 29 | .withFileFromClasspath(SSH_KEY_PATH, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + SSH_KEY_PATH) 30 | .withFileFromClasspath(SSH_KEY_PUB_PATH, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + SSH_KEY_PUB_PATH) 31 | .withFileFromClasspath(SSH_SSHD_CONFIG, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + SSH_SSHD_CONFIG) 32 | .withFileFromClasspath(DOCKERFILE, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + DOCKERFILE)) 33 | .withExposedPorts(SSH_PORT); 34 | 35 | @Override 36 | protected String getAgentName() { 37 | return SSH_AGENT_NAME; 38 | } 39 | 40 | @Override 41 | protected GenericContainer getAgentContainer() { 42 | return agentContainer; 43 | } 44 | 45 | @Override 46 | protected String getAgentSshKeyPath() { 47 | return SSH_AGENT_NAME + "/" + SSH_KEY_PATH; 48 | } 49 | 50 | } 51 | -------------------------------------------------------------------------------- /src/test/java/hudson/plugins/sshslaves/agents/AgentECDHSha2Nistp521ConnectionTest.java: -------------------------------------------------------------------------------- 1 | package hudson.plugins.sshslaves.agents; 2 | 3 | import static hudson.plugins.sshslaves.tags.TestTags.AGENT_SSH_TEST; 4 | import static hudson.plugins.sshslaves.tags.TestTags.SSH_KEX_TEST; 5 | 6 | import org.junit.jupiter.api.Tag; 7 | import org.testcontainers.containers.GenericContainer; 8 | import org.testcontainers.images.builder.ImageFromDockerfile; 9 | import org.testcontainers.junit.jupiter.Container; 10 | 11 | /** 12 | * Connect to a remote SSH Agent 13 | * 14 | * @author Kuisathaverat 15 | */ 16 | @Tag(AGENT_SSH_TEST) 17 | @Tag(SSH_KEX_TEST) 18 | class AgentECDHSha2Nistp521ConnectionTest extends AgentConnectionBaseTest { 19 | private static final String SSH_AGENT_NAME = "ssh-agent-ecdh-sha2-nistp521"; 20 | private static final String SSH_KEY_PATH = "ssh/rsa-key"; 21 | private static final String SSH_KEY_PUB_PATH = "ssh/rsa-key.pub"; 22 | 23 | @Container 24 | private static final GenericContainer agentContainer = new GenericContainer<>( 25 | new ImageFromDockerfile(SSH_AGENT_NAME, false) 26 | .withFileFromClasspath(SSH_AUTHORIZED_KEYS, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + SSH_AUTHORIZED_KEYS) 27 | .withFileFromClasspath(SSH_KEY_PATH, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + SSH_KEY_PATH) 28 | .withFileFromClasspath(SSH_KEY_PUB_PATH, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + SSH_KEY_PUB_PATH) 29 | .withFileFromClasspath(SSH_SSHD_CONFIG, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + SSH_SSHD_CONFIG) 30 | .withFileFromClasspath(DOCKERFILE, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + DOCKERFILE)) 31 | .withExposedPorts(SSH_PORT); 32 | 33 | @Override 34 | protected String getAgentName() { 35 | return SSH_AGENT_NAME; 36 | } 37 | 38 | @Override 39 | protected GenericContainer getAgentContainer() { 40 | return agentContainer; 41 | } 42 | 43 | @Override 44 | protected String getAgentSshKeyPath() { 45 | return SSH_AGENT_NAME + "/" + SSH_KEY_PATH; 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /src/test/java/hudson/plugins/sshslaves/agents/AgentED25519ConnectionTest.java: -------------------------------------------------------------------------------- 1 | package hudson.plugins.sshslaves.agents; 2 | 3 | import static hudson.plugins.sshslaves.tags.TestTags.AGENT_SSH_TEST; 4 | import static hudson.plugins.sshslaves.tags.TestTags.SSH_KEY_AUTHENTICATION_TEST; 5 | 6 | import org.junit.jupiter.api.Tag; 7 | import org.testcontainers.containers.GenericContainer; 8 | import org.testcontainers.images.builder.ImageFromDockerfile; 9 | import org.testcontainers.junit.jupiter.Container; 10 | 11 | /** 12 | * Connect to a remote SSH Agent 13 | * 14 | * @author Kuisathaverat 15 | */ 16 | @Tag(AGENT_SSH_TEST) 17 | @Tag(SSH_KEY_AUTHENTICATION_TEST) 18 | class AgentED25519ConnectionTest extends AgentConnectionBaseTest { 19 | private static final String SSH_AGENT_NAME = "ssh-agent-ed25519"; 20 | private static final String SSH_KEY_PATH = "ssh/ed25519key"; 21 | private static final String SSH_KEY_PUB_PATH = "ssh/ed25519key.pub"; 22 | 23 | @Container 24 | private static final GenericContainer agentContainer = new GenericContainer<>( 25 | new ImageFromDockerfile(SSH_AGENT_NAME, false) 26 | .withFileFromClasspath(SSH_AUTHORIZED_KEYS, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + SSH_AUTHORIZED_KEYS) 27 | .withFileFromClasspath(SSH_KEY_PATH, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + SSH_KEY_PATH) 28 | .withFileFromClasspath(SSH_KEY_PUB_PATH, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + SSH_KEY_PUB_PATH) 29 | .withFileFromClasspath(SSH_SSHD_CONFIG, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + SSH_SSHD_CONFIG) 30 | .withFileFromClasspath(DOCKERFILE, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + DOCKERFILE)) 31 | .withExposedPorts(SSH_PORT); 32 | 33 | @Override 34 | protected String getAgentName() { 35 | return SSH_AGENT_NAME; 36 | } 37 | 38 | @Override 39 | protected GenericContainer getAgentContainer() { 40 | return agentContainer; 41 | } 42 | 43 | @Override 44 | protected String getAgentSshKeyPath() { 45 | return SSH_AGENT_NAME + "/" + SSH_KEY_PATH; 46 | } 47 | 48 | } 49 | -------------------------------------------------------------------------------- /src/test/java/hudson/plugins/sshslaves/agents/AgentHostECConnectionTest.java: -------------------------------------------------------------------------------- 1 | package hudson.plugins.sshslaves.agents; 2 | 3 | import static hudson.plugins.sshslaves.tags.TestTags.AGENT_SSH_TEST; 4 | import static hudson.plugins.sshslaves.tags.TestTags.SSH_HOST_KEY_TEST; 5 | 6 | import org.junit.jupiter.api.Tag; 7 | import org.testcontainers.containers.GenericContainer; 8 | import org.testcontainers.images.builder.ImageFromDockerfile; 9 | import org.testcontainers.junit.jupiter.Container; 10 | 11 | /** 12 | * Connect to a remote SSH Agent 13 | * 14 | * @author Kuisathaverat 15 | */ 16 | @Tag(AGENT_SSH_TEST) 17 | @Tag(SSH_HOST_KEY_TEST) 18 | class AgentHostECConnectionTest extends AgentConnectionBaseTest { 19 | private static final String SSH_AGENT_NAME = "ssh-agent-host-ec"; 20 | private static final String SSH_KEY_PATH = "ssh/rsa-key"; 21 | private static final String SSH_KEY_PUB_PATH = "ssh/rsa-key.pub"; 22 | 23 | @Container 24 | private static final GenericContainer agentContainer = new GenericContainer<>( 25 | new ImageFromDockerfile(SSH_AGENT_NAME, false) 26 | .withFileFromClasspath(SSH_AUTHORIZED_KEYS, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + SSH_AUTHORIZED_KEYS) 27 | .withFileFromClasspath(SSH_KEY_PATH, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + SSH_KEY_PATH) 28 | .withFileFromClasspath(SSH_KEY_PUB_PATH, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + SSH_KEY_PUB_PATH) 29 | .withFileFromClasspath(SSH_SSHD_CONFIG, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + SSH_SSHD_CONFIG) 30 | .withFileFromClasspath(DOCKERFILE, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + DOCKERFILE)) 31 | .withExposedPorts(SSH_PORT); 32 | 33 | @Override 34 | protected String getAgentName() { 35 | return SSH_AGENT_NAME; 36 | } 37 | 38 | @Override 39 | protected GenericContainer getAgentContainer() { 40 | return agentContainer; 41 | } 42 | 43 | @Override 44 | protected String getAgentSshKeyPath() { 45 | return SSH_AGENT_NAME + "/" + SSH_KEY_PATH; 46 | } 47 | 48 | } 49 | -------------------------------------------------------------------------------- /src/test/java/hudson/plugins/sshslaves/agents/AgentHostEDConnectionTest.java: -------------------------------------------------------------------------------- 1 | package hudson.plugins.sshslaves.agents; 2 | 3 | import static hudson.plugins.sshslaves.tags.TestTags.AGENT_SSH_TEST; 4 | import static hudson.plugins.sshslaves.tags.TestTags.SSH_HOST_KEY_TEST; 5 | 6 | import org.junit.jupiter.api.Tag; 7 | import org.testcontainers.containers.GenericContainer; 8 | import org.testcontainers.images.builder.ImageFromDockerfile; 9 | import org.testcontainers.junit.jupiter.Container; 10 | 11 | /** 12 | * Connect to a remote SSH Agent 13 | * 14 | * @author Kuisathaverat 15 | */ 16 | @Tag(AGENT_SSH_TEST) 17 | @Tag(SSH_HOST_KEY_TEST) 18 | class AgentHostEDConnectionTest extends AgentConnectionBaseTest { 19 | private static final String SSH_AGENT_NAME = "ssh-agent-host-ed"; 20 | private static final String SSH_KEY_PATH = "ssh/rsa-key"; 21 | private static final String SSH_KEY_PUB_PATH = "ssh/rsa-key.pub"; 22 | 23 | @Container 24 | private static final GenericContainer agentContainer = new GenericContainer<>( 25 | new ImageFromDockerfile(SSH_AGENT_NAME, false) 26 | .withFileFromClasspath(SSH_AUTHORIZED_KEYS, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + SSH_AUTHORIZED_KEYS) 27 | .withFileFromClasspath(SSH_KEY_PATH, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + SSH_KEY_PATH) 28 | .withFileFromClasspath(SSH_KEY_PUB_PATH, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + SSH_KEY_PUB_PATH) 29 | .withFileFromClasspath(SSH_SSHD_CONFIG, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + SSH_SSHD_CONFIG) 30 | .withFileFromClasspath(DOCKERFILE, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + DOCKERFILE)) 31 | .withExposedPorts(SSH_PORT); 32 | 33 | @Override 34 | protected String getAgentName() { 35 | return SSH_AGENT_NAME; 36 | } 37 | 38 | @Override 39 | protected GenericContainer getAgentContainer() { 40 | return agentContainer; 41 | } 42 | 43 | @Override 44 | protected String getAgentSshKeyPath() { 45 | return SSH_AGENT_NAME + "/" + SSH_KEY_PATH; 46 | } 47 | 48 | } 49 | -------------------------------------------------------------------------------- /src/test/java/hudson/plugins/sshslaves/agents/AgentHostRSAConnectionTest.java: -------------------------------------------------------------------------------- 1 | package hudson.plugins.sshslaves.agents; 2 | 3 | import static hudson.plugins.sshslaves.tags.TestTags.AGENT_SSH_TEST; 4 | import static hudson.plugins.sshslaves.tags.TestTags.SSH_HOST_KEY_TEST; 5 | 6 | import org.junit.jupiter.api.Tag; 7 | import org.testcontainers.containers.GenericContainer; 8 | import org.testcontainers.images.builder.ImageFromDockerfile; 9 | import org.testcontainers.junit.jupiter.Container; 10 | 11 | /** 12 | * Connect to a remote SSH Agent 13 | * 14 | * @author Kuisathaverat 15 | */ 16 | @Tag(AGENT_SSH_TEST) 17 | @Tag(SSH_HOST_KEY_TEST) 18 | class AgentHostRSAConnectionTest extends AgentConnectionBaseTest { 19 | private static final String SSH_AGENT_NAME = "ssh-agent-host-rsa"; 20 | private static final String SSH_KEY_PATH = "ssh/rsa-key"; 21 | private static final String SSH_KEY_PUB_PATH = "ssh/rsa-key.pub"; 22 | 23 | @Container 24 | private static final GenericContainer agentContainer = new GenericContainer<>( 25 | new ImageFromDockerfile(SSH_AGENT_NAME, false) 26 | .withFileFromClasspath(SSH_AUTHORIZED_KEYS, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + SSH_AUTHORIZED_KEYS) 27 | .withFileFromClasspath(SSH_KEY_PATH, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + SSH_KEY_PATH) 28 | .withFileFromClasspath(SSH_KEY_PUB_PATH, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + SSH_KEY_PUB_PATH) 29 | .withFileFromClasspath(SSH_SSHD_CONFIG, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + SSH_SSHD_CONFIG) 30 | .withFileFromClasspath(DOCKERFILE, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + DOCKERFILE)) 31 | .withExposedPorts(SSH_PORT); 32 | 33 | @Override 34 | protected String getAgentName() { 35 | return SSH_AGENT_NAME; 36 | } 37 | 38 | @Override 39 | protected GenericContainer getAgentContainer() { 40 | return agentContainer; 41 | } 42 | 43 | @Override 44 | protected String getAgentSshKeyPath() { 45 | return SSH_AGENT_NAME + "/" + SSH_KEY_PATH; 46 | } 47 | 48 | } 49 | -------------------------------------------------------------------------------- /src/test/java/hudson/plugins/sshslaves/agents/AgentRSA256ConnectionTest.java: -------------------------------------------------------------------------------- 1 | package hudson.plugins.sshslaves.agents; 2 | 3 | import static hudson.plugins.sshslaves.tags.TestTags.AGENT_SSH_TEST; 4 | import static hudson.plugins.sshslaves.tags.TestTags.SSH_KEY_AUTHENTICATION_TEST; 5 | 6 | import org.junit.jupiter.api.Disabled; 7 | import org.junit.jupiter.api.Tag; 8 | import org.testcontainers.containers.GenericContainer; 9 | import org.testcontainers.images.builder.ImageFromDockerfile; 10 | import org.testcontainers.junit.jupiter.Container; 11 | 12 | /** 13 | * Connect to a remote SSH Agent 14 | * 15 | * @author Kuisathaverat 16 | */ 17 | @Disabled("Only for manual test.") 18 | @Tag(AGENT_SSH_TEST) 19 | @Tag(SSH_KEY_AUTHENTICATION_TEST) 20 | class AgentRSA256ConnectionTest extends AgentConnectionBaseTest { 21 | private static final String SSH_AGENT_NAME = "ssh-agent-rsa256"; 22 | private static final String SSH_KEY_PATH = "ssh/rsa-256-key"; 23 | private static final String SSH_KEY_PUB_PATH = "ssh/rsa-256-key.pub"; 24 | 25 | @Container 26 | private static final GenericContainer agentContainer = new GenericContainer<>( 27 | new ImageFromDockerfile(SSH_AGENT_NAME, false) 28 | .withFileFromClasspath(SSH_AUTHORIZED_KEYS, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + SSH_AUTHORIZED_KEYS) 29 | .withFileFromClasspath(SSH_KEY_PATH, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + SSH_KEY_PATH) 30 | .withFileFromClasspath(SSH_KEY_PUB_PATH, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + SSH_KEY_PUB_PATH) 31 | .withFileFromClasspath(SSH_SSHD_CONFIG, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + SSH_SSHD_CONFIG) 32 | .withFileFromClasspath(DOCKERFILE, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + DOCKERFILE)) 33 | .withExposedPorts(SSH_PORT); 34 | 35 | @Override 36 | protected String getAgentName() { 37 | return SSH_AGENT_NAME; 38 | } 39 | 40 | @Override 41 | protected GenericContainer getAgentContainer() { 42 | return agentContainer; 43 | } 44 | 45 | @Override 46 | protected String getAgentSshKeyPath() { 47 | return SSH_AGENT_NAME + "/" + SSH_KEY_PATH; 48 | } 49 | 50 | } 51 | -------------------------------------------------------------------------------- /src/test/java/hudson/plugins/sshslaves/agents/AgentRSA512ConnectionTest.java: -------------------------------------------------------------------------------- 1 | package hudson.plugins.sshslaves.agents; 2 | 3 | import static hudson.plugins.sshslaves.tags.TestTags.AGENT_SSH_TEST; 4 | import static hudson.plugins.sshslaves.tags.TestTags.SSH_KEY_AUTHENTICATION_TEST; 5 | 6 | import org.junit.jupiter.api.Tag; 7 | import org.testcontainers.containers.GenericContainer; 8 | import org.testcontainers.images.builder.ImageFromDockerfile; 9 | import org.testcontainers.junit.jupiter.Container; 10 | 11 | /** 12 | * Connect to a remote SSH Agent 13 | * 14 | * @author Kuisathaverat 15 | */ 16 | @Tag(AGENT_SSH_TEST) 17 | @Tag(SSH_KEY_AUTHENTICATION_TEST) 18 | class AgentRSA512ConnectionTest extends AgentConnectionBaseTest { 19 | private static final String SSH_AGENT_NAME = "ssh-agent-rsa512"; 20 | private static final String SSH_KEY_PATH = "ssh/rsa-512-key"; 21 | private static final String SSH_KEY_PUB_PATH = "ssh/rsa-512-key.pub"; 22 | 23 | @Container 24 | private static final GenericContainer agentContainer = new GenericContainer<>( 25 | new ImageFromDockerfile(SSH_AGENT_NAME, false) 26 | .withFileFromClasspath(SSH_AUTHORIZED_KEYS, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + SSH_AUTHORIZED_KEYS) 27 | .withFileFromClasspath(SSH_KEY_PATH, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + SSH_KEY_PATH) 28 | .withFileFromClasspath(SSH_KEY_PUB_PATH, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + SSH_KEY_PUB_PATH) 29 | .withFileFromClasspath(SSH_SSHD_CONFIG, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + SSH_SSHD_CONFIG) 30 | .withFileFromClasspath(DOCKERFILE, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + DOCKERFILE)) 31 | .withExposedPorts(SSH_PORT); 32 | 33 | @Override 34 | protected String getAgentName() { 35 | return SSH_AGENT_NAME; 36 | } 37 | 38 | @Override 39 | protected GenericContainer getAgentContainer() { 40 | return agentContainer; 41 | } 42 | 43 | @Override 44 | protected String getAgentSshKeyPath() { 45 | return SSH_AGENT_NAME + "/" + SSH_KEY_PATH; 46 | } 47 | 48 | } 49 | -------------------------------------------------------------------------------- /src/test/java/hudson/plugins/sshslaves/agents/AgentRSAConnectionTest.java: -------------------------------------------------------------------------------- 1 | package hudson.plugins.sshslaves.agents; 2 | 3 | import static hudson.plugins.sshslaves.tags.TestTags.AGENT_SSH_TEST; 4 | import static hudson.plugins.sshslaves.tags.TestTags.SSH_KEY_AUTHENTICATION_TEST; 5 | 6 | import org.junit.jupiter.api.Tag; 7 | import org.testcontainers.containers.GenericContainer; 8 | import org.testcontainers.images.builder.ImageFromDockerfile; 9 | import org.testcontainers.junit.jupiter.Container; 10 | 11 | /** 12 | * Connect to a remote SSH Agent 13 | * 14 | * @author Kuisathaverat 15 | */ 16 | @Tag(AGENT_SSH_TEST) 17 | @Tag(SSH_KEY_AUTHENTICATION_TEST) 18 | class AgentRSAConnectionTest extends AgentConnectionBaseTest { 19 | private static final String SSH_AGENT_NAME = "ssh-agent-rsa"; 20 | private static final String SSH_KEY_PATH = "ssh/rsa-key"; 21 | private static final String SSH_KEY_PUB_PATH = "ssh/rsa-key.pub"; 22 | 23 | @Container 24 | private static final GenericContainer agentContainer = new GenericContainer<>( 25 | new ImageFromDockerfile(SSH_AGENT_NAME, false) 26 | .withFileFromClasspath(SSH_AUTHORIZED_KEYS, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + SSH_AUTHORIZED_KEYS) 27 | .withFileFromClasspath(SSH_KEY_PATH, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + SSH_KEY_PATH) 28 | .withFileFromClasspath(SSH_KEY_PUB_PATH, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + SSH_KEY_PUB_PATH) 29 | .withFileFromClasspath(SSH_SSHD_CONFIG, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + SSH_SSHD_CONFIG) 30 | .withFileFromClasspath(DOCKERFILE, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + DOCKERFILE)) 31 | .withExposedPorts(SSH_PORT); 32 | 33 | @Override 34 | protected String getAgentName() { 35 | return SSH_AGENT_NAME; 36 | } 37 | 38 | @Override 39 | protected GenericContainer getAgentContainer() { 40 | return agentContainer; 41 | } 42 | 43 | @Override 44 | protected String getAgentSshKeyPath() { 45 | return SSH_AGENT_NAME + "/" + SSH_KEY_PATH; 46 | } 47 | 48 | } 49 | -------------------------------------------------------------------------------- /src/test/java/hudson/plugins/sshslaves/agents/AgentRSA_AES128CBC_ConnectionTest.java: -------------------------------------------------------------------------------- 1 | package hudson.plugins.sshslaves.agents; 2 | 3 | import static hudson.plugins.sshslaves.tags.TestTags.AGENT_SSH_TEST; 4 | import static hudson.plugins.sshslaves.tags.TestTags.SSH_KEY_AUTHENTICATION_TEST; 5 | 6 | import org.junit.jupiter.api.Disabled; 7 | import org.junit.jupiter.api.Tag; 8 | import org.testcontainers.containers.GenericContainer; 9 | import org.testcontainers.images.builder.ImageFromDockerfile; 10 | import org.testcontainers.junit.jupiter.Container; 11 | 12 | /** 13 | * Connect to a remote SSH Agent 14 | * 15 | * @author Kuisathaverat 16 | */ 17 | @Disabled("Only for manual test.") 18 | @Tag(AGENT_SSH_TEST) 19 | @Tag(SSH_KEY_AUTHENTICATION_TEST) 20 | class AgentRSA_AES128CBC_ConnectionTest extends AgentConnectionBaseTest { 21 | private static final String SSH_AGENT_NAME = "ssh-agent-rsa"; 22 | private static final String SSH_KEY_PATH = "ssh/rsa-key-aes128-cbc"; 23 | private static final String SSH_KEY_PUB_PATH = "ssh/rsa-key.pub"; 24 | 25 | @Container 26 | private static final GenericContainer agentContainer = new GenericContainer<>( 27 | new ImageFromDockerfile(SSH_AGENT_NAME, false) 28 | .withFileFromClasspath(SSH_AUTHORIZED_KEYS, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + SSH_AUTHORIZED_KEYS) 29 | .withFileFromClasspath(SSH_KEY_PATH, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + SSH_KEY_PATH) 30 | .withFileFromClasspath(SSH_KEY_PUB_PATH, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + SSH_KEY_PUB_PATH) 31 | .withFileFromClasspath(SSH_SSHD_CONFIG, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + SSH_SSHD_CONFIG) 32 | .withFileFromClasspath(DOCKERFILE, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + DOCKERFILE)) 33 | .withExposedPorts(SSH_PORT); 34 | 35 | @Override 36 | protected String getAgentName() { 37 | return SSH_AGENT_NAME; 38 | } 39 | 40 | @Override 41 | protected GenericContainer getAgentContainer() { 42 | return agentContainer; 43 | } 44 | 45 | @Override 46 | protected String getAgentSshKeyPath() { 47 | return SSH_AGENT_NAME + "/" + SSH_KEY_PATH; 48 | } 49 | 50 | } 51 | -------------------------------------------------------------------------------- /src/test/java/hudson/plugins/sshslaves/agents/AgentRSA_AES192CBC_ConnectionTest.java: -------------------------------------------------------------------------------- 1 | package hudson.plugins.sshslaves.agents; 2 | 3 | import static hudson.plugins.sshslaves.tags.TestTags.AGENT_SSH_TEST; 4 | import static hudson.plugins.sshslaves.tags.TestTags.SSH_KEY_AUTHENTICATION_TEST; 5 | 6 | import org.junit.jupiter.api.Disabled; 7 | import org.junit.jupiter.api.Tag; 8 | import org.testcontainers.containers.GenericContainer; 9 | import org.testcontainers.images.builder.ImageFromDockerfile; 10 | import org.testcontainers.junit.jupiter.Container; 11 | 12 | /** 13 | * Connect to a remote SSH Agent 14 | * 15 | * @author Kuisathaverat 16 | */ 17 | @Disabled("Only for manual test.") 18 | @Tag(AGENT_SSH_TEST) 19 | @Tag(SSH_KEY_AUTHENTICATION_TEST) 20 | class AgentRSA_AES192CBC_ConnectionTest extends AgentConnectionBaseTest { 21 | private static final String SSH_AGENT_NAME = "ssh-agent-rsa"; 22 | private static final String SSH_KEY_PATH = "ssh/rsa-key-aes192-cbc"; 23 | private static final String SSH_KEY_PUB_PATH = "ssh/rsa-key.pub"; 24 | 25 | @Container 26 | private static final GenericContainer agentContainer = new GenericContainer<>( 27 | new ImageFromDockerfile(SSH_AGENT_NAME, false) 28 | .withFileFromClasspath(SSH_AUTHORIZED_KEYS, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + SSH_AUTHORIZED_KEYS) 29 | .withFileFromClasspath(SSH_KEY_PATH, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + SSH_KEY_PATH) 30 | .withFileFromClasspath(SSH_KEY_PUB_PATH, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + SSH_KEY_PUB_PATH) 31 | .withFileFromClasspath(SSH_SSHD_CONFIG, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + SSH_SSHD_CONFIG) 32 | .withFileFromClasspath(DOCKERFILE, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + DOCKERFILE)) 33 | .withExposedPorts(SSH_PORT); 34 | 35 | @Override 36 | protected String getAgentName() { 37 | return SSH_AGENT_NAME; 38 | } 39 | 40 | @Override 41 | protected GenericContainer getAgentContainer() { 42 | return agentContainer; 43 | } 44 | 45 | @Override 46 | protected String getAgentSshKeyPath() { 47 | return SSH_AGENT_NAME + "/" + SSH_KEY_PATH; 48 | } 49 | 50 | } 51 | -------------------------------------------------------------------------------- /src/test/java/hudson/plugins/sshslaves/agents/AgentRSA_AES256CBC_ConnectionTest.java: -------------------------------------------------------------------------------- 1 | package hudson.plugins.sshslaves.agents; 2 | 3 | import static hudson.plugins.sshslaves.tags.TestTags.AGENT_SSH_TEST; 4 | import static hudson.plugins.sshslaves.tags.TestTags.SSH_KEY_AUTHENTICATION_TEST; 5 | 6 | import org.junit.jupiter.api.Tag; 7 | import org.testcontainers.containers.GenericContainer; 8 | import org.testcontainers.images.builder.ImageFromDockerfile; 9 | import org.testcontainers.junit.jupiter.Container; 10 | 11 | /** 12 | * Connect to a remote SSH Agent 13 | * 14 | * @author Kuisathaverat 15 | */ 16 | @Tag(AGENT_SSH_TEST) 17 | @Tag(SSH_KEY_AUTHENTICATION_TEST) 18 | class AgentRSA_AES256CBC_ConnectionTest extends AgentConnectionBaseTest { 19 | private static final String SSH_AGENT_NAME = "ssh-agent-rsa"; 20 | private static final String SSH_KEY_PATH = "ssh/rsa-key-aes256-cbc"; 21 | private static final String SSH_KEY_PUB_PATH = "ssh/rsa-key.pub"; 22 | 23 | @Container 24 | private static final GenericContainer agentContainer = new GenericContainer<>( 25 | new ImageFromDockerfile(SSH_AGENT_NAME, false) 26 | .withFileFromClasspath(SSH_AUTHORIZED_KEYS, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + SSH_AUTHORIZED_KEYS) 27 | .withFileFromClasspath(SSH_KEY_PATH, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + SSH_KEY_PATH) 28 | .withFileFromClasspath(SSH_KEY_PUB_PATH, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + SSH_KEY_PUB_PATH) 29 | .withFileFromClasspath(SSH_SSHD_CONFIG, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + SSH_SSHD_CONFIG) 30 | .withFileFromClasspath(DOCKERFILE, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + DOCKERFILE)) 31 | .withExposedPorts(SSH_PORT); 32 | 33 | @Override 34 | protected String getAgentName() { 35 | return SSH_AGENT_NAME; 36 | } 37 | 38 | @Override 39 | protected GenericContainer getAgentContainer() { 40 | return agentContainer; 41 | } 42 | 43 | @Override 44 | protected String getAgentSshKeyPath() { 45 | return SSH_AGENT_NAME + "/" + SSH_KEY_PATH; 46 | } 47 | 48 | @Override 49 | protected String getAgentSshKeyPassphrase() { 50 | return PASSWORD; 51 | } 52 | 53 | } 54 | -------------------------------------------------------------------------------- /src/test/java/hudson/plugins/sshslaves/agents/AgentRSA_DESCBC_ConnectionTest.java: -------------------------------------------------------------------------------- 1 | package hudson.plugins.sshslaves.agents; 2 | 3 | import static hudson.plugins.sshslaves.tags.TestTags.AGENT_SSH_TEST; 4 | import static hudson.plugins.sshslaves.tags.TestTags.SSH_KEY_AUTHENTICATION_TEST; 5 | 6 | import org.junit.jupiter.api.Disabled; 7 | import org.junit.jupiter.api.Tag; 8 | import org.testcontainers.containers.GenericContainer; 9 | import org.testcontainers.images.builder.ImageFromDockerfile; 10 | import org.testcontainers.junit.jupiter.Container; 11 | 12 | /** 13 | * Connect to a remote SSH Agent 14 | * 15 | * @author Kuisathaverat 16 | */ 17 | @Disabled("Only for manual test.") 18 | @Tag(AGENT_SSH_TEST) 19 | @Tag(SSH_KEY_AUTHENTICATION_TEST) 20 | class AgentRSA_DESCBC_ConnectionTest extends AgentConnectionBaseTest { 21 | private static final String SSH_AGENT_NAME = "ssh-agent-rsa"; 22 | private static final String SSH_KEY_PATH = "ssh/rsa-key-des-cbc"; 23 | private static final String SSH_KEY_PUB_PATH = "ssh/rsa-key.pub"; 24 | 25 | @Container 26 | private static final GenericContainer agentContainer = new GenericContainer<>( 27 | new ImageFromDockerfile(SSH_AGENT_NAME, false) 28 | .withFileFromClasspath(SSH_AUTHORIZED_KEYS, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + SSH_AUTHORIZED_KEYS) 29 | .withFileFromClasspath(SSH_KEY_PATH, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + SSH_KEY_PATH) 30 | .withFileFromClasspath(SSH_KEY_PUB_PATH, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + SSH_KEY_PUB_PATH) 31 | .withFileFromClasspath(SSH_SSHD_CONFIG, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + SSH_SSHD_CONFIG) 32 | .withFileFromClasspath(DOCKERFILE, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + DOCKERFILE)) 33 | .withExposedPorts(SSH_PORT); 34 | 35 | @Override 36 | protected String getAgentName() { 37 | return SSH_AGENT_NAME; 38 | } 39 | 40 | @Override 41 | protected GenericContainer getAgentContainer() { 42 | return agentContainer; 43 | } 44 | 45 | @Override 46 | protected String getAgentSshKeyPath() { 47 | return SSH_AGENT_NAME + "/" + SSH_KEY_PATH; 48 | } 49 | 50 | } 51 | -------------------------------------------------------------------------------- /src/test/java/hudson/plugins/sshslaves/agents/AgentRSA_DES_EDE3CBC_ConnectionTest.java: -------------------------------------------------------------------------------- 1 | package hudson.plugins.sshslaves.agents; 2 | 3 | import static hudson.plugins.sshslaves.tags.TestTags.AGENT_SSH_TEST; 4 | import static hudson.plugins.sshslaves.tags.TestTags.SSH_KEY_AUTHENTICATION_TEST; 5 | 6 | import org.junit.jupiter.api.Disabled; 7 | import org.junit.jupiter.api.Tag; 8 | import org.testcontainers.containers.GenericContainer; 9 | import org.testcontainers.images.builder.ImageFromDockerfile; 10 | import org.testcontainers.junit.jupiter.Container; 11 | 12 | /** 13 | * Connect to a remote SSH Agent 14 | * 15 | * @author Kuisathaverat 16 | */ 17 | @Disabled("Only for manual test.") 18 | @Tag(AGENT_SSH_TEST) 19 | @Tag(SSH_KEY_AUTHENTICATION_TEST) 20 | class AgentRSA_DES_EDE3CBC_ConnectionTest extends AgentConnectionBaseTest { 21 | private static final String SSH_AGENT_NAME = "ssh-agent-rsa"; 22 | private static final String SSH_KEY_PATH = "ssh/rsa-key-des-ede3-cbc"; 23 | private static final String SSH_KEY_PUB_PATH = "ssh/rsa-key.pub"; 24 | 25 | @Container 26 | private static final GenericContainer agentContainer = new GenericContainer<>( 27 | new ImageFromDockerfile(SSH_AGENT_NAME, false) 28 | .withFileFromClasspath(SSH_AUTHORIZED_KEYS, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + SSH_AUTHORIZED_KEYS) 29 | .withFileFromClasspath(SSH_KEY_PATH, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + SSH_KEY_PATH) 30 | .withFileFromClasspath(SSH_KEY_PUB_PATH, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + SSH_KEY_PUB_PATH) 31 | .withFileFromClasspath(SSH_SSHD_CONFIG, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + SSH_SSHD_CONFIG) 32 | .withFileFromClasspath(DOCKERFILE, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + DOCKERFILE)) 33 | .withExposedPorts(SSH_PORT); 34 | 35 | @Override 36 | protected String getAgentName() { 37 | return SSH_AGENT_NAME; 38 | } 39 | 40 | @Override 41 | protected GenericContainer getAgentContainer() { 42 | return agentContainer; 43 | } 44 | 45 | @Override 46 | protected String getAgentSshKeyPath() { 47 | return SSH_AGENT_NAME + "/" + SSH_KEY_PATH; 48 | } 49 | 50 | } 51 | -------------------------------------------------------------------------------- /src/test/java/hudson/plugins/sshslaves/agents/AgentUbuntu20RSAConnectionTest.java: -------------------------------------------------------------------------------- 1 | package hudson.plugins.sshslaves.agents; 2 | 3 | import static hudson.plugins.sshslaves.tags.TestTags.AGENT_SSH_TEST; 4 | import static hudson.plugins.sshslaves.tags.TestTags.SSH_KEY_AUTHENTICATION_TEST; 5 | 6 | import org.junit.jupiter.api.Disabled; 7 | import org.junit.jupiter.api.Tag; 8 | import org.testcontainers.containers.GenericContainer; 9 | import org.testcontainers.images.builder.ImageFromDockerfile; 10 | 11 | import org.testcontainers.junit.jupiter.Container; 12 | 13 | /** 14 | * Connect to a remote SSH Agent 15 | * 16 | * @author Kuisathaverat 17 | */ 18 | @Disabled("Only for manual test.") 19 | @Tag(AGENT_SSH_TEST) 20 | @Tag(SSH_KEY_AUTHENTICATION_TEST) 21 | class AgentUbuntu20RSAConnectionTest extends AgentConnectionBaseTest { 22 | private static final String SSH_AGENT_NAME = "ssh-agent-ubuntu-20"; 23 | private static final String SSH_KEY_PATH = "ssh/rsa-key"; 24 | private static final String SSH_KEY_PUB_PATH = "ssh/rsa-key.pub"; 25 | 26 | @Container 27 | private static final GenericContainer agentContainer = new GenericContainer<>( 28 | new ImageFromDockerfile(SSH_AGENT_NAME, false) 29 | .withFileFromClasspath(SSH_AUTHORIZED_KEYS, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + SSH_AUTHORIZED_KEYS) 30 | .withFileFromClasspath(SSH_KEY_PATH, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + SSH_KEY_PATH) 31 | .withFileFromClasspath(SSH_KEY_PUB_PATH, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + SSH_KEY_PUB_PATH) 32 | .withFileFromClasspath(SSH_SSHD_CONFIG, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + SSH_SSHD_CONFIG) 33 | .withFileFromClasspath(DOCKERFILE, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + DOCKERFILE)) 34 | .withExposedPorts(SSH_PORT); 35 | 36 | @Override 37 | protected String getAgentName() { 38 | return SSH_AGENT_NAME; 39 | } 40 | 41 | @Override 42 | protected GenericContainer getAgentContainer() { 43 | return agentContainer; 44 | } 45 | 46 | @Override 47 | protected String getAgentSshKeyPath() { 48 | return SSH_AGENT_NAME + "/" + SSH_KEY_PATH; 49 | } 50 | 51 | } 52 | -------------------------------------------------------------------------------- /src/test/java/hudson/plugins/sshslaves/agents/AgentUbuntu22RSAConnectionTest.java: -------------------------------------------------------------------------------- 1 | package hudson.plugins.sshslaves.agents; 2 | 3 | import static hudson.plugins.sshslaves.tags.TestTags.AGENT_SSH_TEST; 4 | import static hudson.plugins.sshslaves.tags.TestTags.SSH_KEY_AUTHENTICATION_TEST; 5 | 6 | import org.junit.jupiter.api.Disabled; 7 | import org.junit.jupiter.api.Tag; 8 | import org.testcontainers.containers.GenericContainer; 9 | import org.testcontainers.images.builder.ImageFromDockerfile; 10 | 11 | import org.testcontainers.junit.jupiter.Container; 12 | 13 | /** 14 | * Connect to a remote SSH Agent 15 | * 16 | * @author Kuisathaverat 17 | */ 18 | @Disabled("Only for manual test.") 19 | @Tag(AGENT_SSH_TEST) 20 | @Tag(SSH_KEY_AUTHENTICATION_TEST) 21 | class AgentUbuntu22RSAConnectionTest extends AgentConnectionBaseTest { 22 | private static final String SSH_AGENT_NAME = "ssh-agent-ubuntu-22"; 23 | private static final String SSH_KEY_PATH = "ssh/rsa-key"; 24 | private static final String SSH_KEY_PUB_PATH = "ssh/rsa-key.pub"; 25 | 26 | @Container 27 | private static final GenericContainer agentContainer = new GenericContainer<>( 28 | new ImageFromDockerfile(SSH_AGENT_NAME, false) 29 | .withFileFromClasspath(SSH_AUTHORIZED_KEYS, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + SSH_AUTHORIZED_KEYS) 30 | .withFileFromClasspath(SSH_KEY_PATH, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + SSH_KEY_PATH) 31 | .withFileFromClasspath(SSH_KEY_PUB_PATH, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + SSH_KEY_PUB_PATH) 32 | .withFileFromClasspath(SSH_SSHD_CONFIG, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + SSH_SSHD_CONFIG) 33 | .withFileFromClasspath(DOCKERFILE, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + DOCKERFILE)) 34 | .withExposedPorts(SSH_PORT); 35 | 36 | @Override 37 | protected String getAgentName() { 38 | return SSH_AGENT_NAME; 39 | } 40 | 41 | @Override 42 | protected GenericContainer getAgentContainer() { 43 | return agentContainer; 44 | } 45 | 46 | @Override 47 | protected String getAgentSshKeyPath() { 48 | return SSH_AGENT_NAME + "/" + SSH_KEY_PATH; 49 | } 50 | 51 | } 52 | -------------------------------------------------------------------------------- /src/test/java/hudson/plugins/sshslaves/agents/AgentUbuntu24RSAConnectionTest.java: -------------------------------------------------------------------------------- 1 | package hudson.plugins.sshslaves.agents; 2 | 3 | import static hudson.plugins.sshslaves.tags.TestTags.AGENT_SSH_TEST; 4 | import static hudson.plugins.sshslaves.tags.TestTags.SSH_KEY_AUTHENTICATION_TEST; 5 | 6 | import org.junit.jupiter.api.Disabled; 7 | import org.junit.jupiter.api.Tag; 8 | import org.testcontainers.containers.GenericContainer; 9 | import org.testcontainers.images.builder.ImageFromDockerfile; 10 | 11 | import org.testcontainers.junit.jupiter.Container; 12 | 13 | /** 14 | * Connect to a remote SSH Agent 15 | * 16 | * @author Kuisathaverat 17 | */ 18 | @Disabled("Only for manual test.") 19 | @Tag(AGENT_SSH_TEST) 20 | @Tag(SSH_KEY_AUTHENTICATION_TEST) 21 | class AgentUbuntu24RSAConnectionTest extends AgentConnectionBaseTest { 22 | private static final String SSH_AGENT_NAME = "ssh-agent-ubuntu-24"; 23 | private static final String SSH_KEY_PATH = "ssh/rsa-key"; 24 | private static final String SSH_KEY_PUB_PATH = "ssh/rsa-key.pub"; 25 | 26 | @Container 27 | private static final GenericContainer agentContainer = new GenericContainer<>( 28 | new ImageFromDockerfile(SSH_AGENT_NAME, false) 29 | .withFileFromClasspath(SSH_AUTHORIZED_KEYS, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + SSH_AUTHORIZED_KEYS) 30 | .withFileFromClasspath(SSH_KEY_PATH, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + SSH_KEY_PATH) 31 | .withFileFromClasspath(SSH_KEY_PUB_PATH, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + SSH_KEY_PUB_PATH) 32 | .withFileFromClasspath(SSH_SSHD_CONFIG, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + SSH_SSHD_CONFIG) 33 | .withFileFromClasspath(DOCKERFILE, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + DOCKERFILE)) 34 | .withExposedPorts(SSH_PORT); 35 | 36 | @Override 37 | protected String getAgentName() { 38 | return SSH_AGENT_NAME; 39 | } 40 | 41 | @Override 42 | protected GenericContainer getAgentContainer() { 43 | return agentContainer; 44 | } 45 | 46 | @Override 47 | protected String getAgentSshKeyPath() { 48 | return SSH_AGENT_NAME + "/" + SSH_KEY_PATH; 49 | } 50 | 51 | } 52 | -------------------------------------------------------------------------------- /src/test/java/hudson/plugins/sshslaves/agents/AgentUserAndPasswordConnectionTest.java: -------------------------------------------------------------------------------- 1 | package hudson.plugins.sshslaves.agents; 2 | 3 | import static hudson.plugins.sshslaves.tags.TestTags.AGENT_SSH_TEST; 4 | 5 | import org.junit.jupiter.api.Tag; 6 | import org.testcontainers.containers.GenericContainer; 7 | import org.testcontainers.images.builder.ImageFromDockerfile; 8 | import org.testcontainers.junit.jupiter.Container; 9 | 10 | /** 11 | * Connect to a remote SSH Agent 12 | * 13 | * @author Kuisathaverat 14 | */ 15 | @Tag(AGENT_SSH_TEST) 16 | class AgentUserAndPasswordConnectionTest extends AgentConnectionBaseTest { 17 | private static final String SSH_AGENT_NAME = "ssh-agent-dsa"; 18 | private static final String SSH_KEY_PATH = "ssh/dsakey"; 19 | private static final String SSH_KEY_PUB_PATH = "ssh/dsakey.pub"; 20 | 21 | @Container 22 | private static final GenericContainer agentContainer = new GenericContainer<>( 23 | new ImageFromDockerfile(SSH_AGENT_NAME, false) 24 | .withFileFromClasspath(SSH_AUTHORIZED_KEYS, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + SSH_AUTHORIZED_KEYS) 25 | .withFileFromClasspath(SSH_KEY_PATH, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + SSH_KEY_PATH) 26 | .withFileFromClasspath(SSH_KEY_PUB_PATH, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + SSH_KEY_PUB_PATH) 27 | .withFileFromClasspath(SSH_SSHD_CONFIG, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + SSH_SSHD_CONFIG) 28 | .withFileFromClasspath(DOCKERFILE, AGENTS_RESOURCES_PATH + "/" + SSH_AGENT_NAME + "/" + DOCKERFILE)) 29 | .withExposedPorts(SSH_PORT); 30 | 31 | @Override 32 | protected String getAgentName() { 33 | return SSH_AGENT_NAME; 34 | } 35 | 36 | @Override 37 | protected GenericContainer getAgentContainer() { 38 | return agentContainer; 39 | } 40 | 41 | @Override 42 | protected String getAgentSshKeyPath() { 43 | return SSH_AGENT_NAME + "/" + SSH_KEY_PATH; 44 | } 45 | 46 | } 47 | -------------------------------------------------------------------------------- /src/test/java/hudson/plugins/sshslaves/tags/TestTags.java: -------------------------------------------------------------------------------- 1 | package hudson.plugins.sshslaves.tags; 2 | 3 | public final class TestTags { 4 | 5 | public static final String AGENT_SSH_TEST = "AgentSSHTest"; 6 | public static final String SSH_HOST_KEY_TEST ="SSHHostKeyTest"; 7 | public static final String SSH_KEX_TEST = "SSHKexTest"; 8 | public static final String SSH_KEY_AUTHENTICATION_TEST = "SSHKeyAuthenticationTest"; 9 | 10 | private TestTags() { 11 | // hidden 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/test/java/hudson/plugins/sshslaves/verifiers/ManuallyProvidedKeyVerificationStrategyTest.java: -------------------------------------------------------------------------------- 1 | package hudson.plugins.sshslaves.verifiers; 2 | 3 | import org.junit.jupiter.api.Test; 4 | 5 | import java.io.IOException; 6 | 7 | import static org.junit.jupiter.api.Assertions.assertArrayEquals; 8 | 9 | /** 10 | * @author Michael Clarke 11 | */ 12 | class ManuallyProvidedKeyVerificationStrategyTest { 13 | 14 | @Test 15 | void testRsa() throws IOException { 16 | ManuallyProvidedKeyVerificationStrategy testCase = new ManuallyProvidedKeyVerificationStrategy("ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAtqwn/v4+sYBD0e5UT59zGjQ+iBOJvKbqVX22vt4hFIVrbwmB+HKJGwOINe1gnc/syPGj/5c6yoOnjTdpI/xerip6RjVPRTQVh2nNjsbXIS5epi/39nnPFZ/0hE3ozOtQ1j9OS5bXVBD770ha1UFnCql4DfcWj+y1QVYvm53p2fID+an0HNunnZjq+r2UJgt138lkZN2K7S42U/apqOHStFGVPxF+gmK1fI021QI+QjxfKOoyGNCpbAaMM6jzikqCJOE8M7jpSZgHMO2x+wvjMK8p2uXAaZlYJeUlEqUVGa9jjkdEiTPabFJyrKORrTWX7Ahs6C4vCAgWmNZzOmOvnw== rsa-key-20170516"); 17 | assertArrayEquals(new String[]{"ssh-rsa", "ssh-ed25519", "ecdsa-sha2-nistp521", "ecdsa-sha2-nistp384", "ecdsa-sha2-nistp256", "rsa-sha2-256", "rsa-sha2-512", "ssh-dss"}, testCase.getPreferredKeyAlgorithms(null)); 18 | } 19 | 20 | @Test 21 | void testEd25519() throws IOException { 22 | ManuallyProvidedKeyVerificationStrategy testCase = new ManuallyProvidedKeyVerificationStrategy("ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMQPcXch45Uak9iiHt1puffR6LHZxZsHU0iyeyUnf5qW ed25519-key-20170516"); 23 | assertArrayEquals(new String[]{"ssh-ed25519", "ecdsa-sha2-nistp521", "ecdsa-sha2-nistp384", "ecdsa-sha2-nistp256", "rsa-sha2-256", "rsa-sha2-512", "ssh-rsa", "ssh-dss"}, testCase.getPreferredKeyAlgorithms(null)); 24 | } 25 | 26 | 27 | @Test 28 | void testEcdsa() throws IOException { 29 | ManuallyProvidedKeyVerificationStrategy testCase = new ManuallyProvidedKeyVerificationStrategy("ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBMQMVHTpplIuqEcOR8j7wzydDUzXF0Fl82WluEJphpo2JKbJ4DNaL3Zu6bfeDQGuH3hWtG1H0r4ntoDtN940GGA= ecdsa-key-20170516"); 30 | assertArrayEquals(new String[]{"ecdsa-sha2-nistp256", "ssh-ed25519", "ecdsa-sha2-nistp521", "ecdsa-sha2-nistp384", "rsa-sha2-256", "rsa-sha2-512", "ssh-rsa", "ssh-dss"}, testCase.getPreferredKeyAlgorithms(null)); 31 | } 32 | 33 | @Test 34 | void testDsa() throws IOException { 35 | ManuallyProvidedKeyVerificationStrategy testCase = new ManuallyProvidedKeyVerificationStrategy("ssh-dss AAAAB3NzaC1kc3MAAAAhAOD3H2nbagBMaZ7XDnGUBO3vuqi3McIC9A+smJH9lsnzAAAAFQD3lLxlCXN8K4CeNCJdHeXEpeE7vwAAACBtZ3osIr0OtX6uKFumP6ybXGrfiy7otYqmSPwS+A2MywAAACEA34SUyAprA9HHPmRqZnJ6Acgq6KKRrh4SKTPUdJa8aBc= dsa-key-20170516"); 36 | assertArrayEquals(new String[]{"ssh-dss", "ssh-ed25519", "ecdsa-sha2-nistp521", "ecdsa-sha2-nistp384", "ecdsa-sha2-nistp256", "rsa-sha2-256", "rsa-sha2-512", "ssh-rsa"}, testCase.getPreferredKeyAlgorithms(null)); 37 | } 38 | 39 | } 40 | -------------------------------------------------------------------------------- /src/test/resources/hudson/plugins/sshslaves/SSHCasCConfig.yml: -------------------------------------------------------------------------------- 1 | jenkins: 2 | nodes: 3 | - permanent: 4 | name: "this-ssh-agent" 5 | remoteFS: "/home/jenkins" 6 | launcher: 7 | ssh: 8 | host: ssh-host 9 | port: 2222 10 | jvmOptions: "-DuberImportantParam=uberImportantValue" 11 | -------------------------------------------------------------------------------- /src/test/resources/hudson/plugins/sshslaves/SSHCasCConfigLegacy.yml: -------------------------------------------------------------------------------- 1 | jenkins: 2 | nodes: 3 | - permanent: 4 | name: "this-ssh-agent" 5 | remoteFS: "/home/jenkins" 6 | launcher: 7 | sSHLauncher: 8 | host: ssh-host 9 | port: 2222 10 | jvmOptions: "-DuberImportantParam=uberImportantValue" 11 | -------------------------------------------------------------------------------- /src/test/resources/hudson/plugins/sshslaves/agents/ssh-agent-base/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ubuntu:24.04 2 | USER root 3 | 4 | ENV TZ=Etc/UTC 5 | RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone 6 | RUN DEBIAN_FRONTEND="noninteractive" apt-get update -y -qq \ 7 | && DEBIAN_FRONTEND="noninteractive" apt-get install -y -qq \ 8 | --no-install-recommends \ 9 | openssh-server \ 10 | software-properties-common \ 11 | git \ 12 | make 13 | 14 | RUN add-apt-repository ppa:openjdk-r/ppa -y \ 15 | && DEBIAN_FRONTEND="noninteractive" apt-get update -y -qq \ 16 | && DEBIAN_FRONTEND="noninteractive" apt-get install -y -qq \ 17 | openjdk-17-jdk \ 18 | && rm -rf /var/lib/apt/lists/* 19 | 20 | RUN useradd --password password --shell /bin/bash jenkins \ 21 | && mkdir /home/jenkins \ 22 | && chown -R jenkins:jenkins /home/jenkins 23 | 24 | RUN mkdir -p /var/run/sshd 25 | 26 | RUN echo "password\npassword" | passwd root \ 27 | && echo "password\npassword" | passwd jenkins 28 | 29 | RUN ssh-keygen -A 30 | 31 | EXPOSE 22 32 | ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/lib/jvm/java-17-openjdk-amd64/jre/bin:/usr/lib/jvm/java-17-openjdk-amd64/bin 33 | RUN echo "PATH=${PATH}" >> /etc/environment 34 | ENTRYPOINT [] 35 | CMD [ "/bin/sh", "-c", "/usr/sbin/sshd -e -D -p 22"] 36 | -------------------------------------------------------------------------------- /src/test/resources/hudson/plugins/sshslaves/agents/ssh-agent-curve25519-sha256/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ghcr.io/jenkinsci/ssh-agents-plugin:baseb2fb086@sha256:2bc6d82ca2b406b0a2b509fd2308c38ae51de9f3e61cb1288e3421f6116bb27c 2 | USER root 3 | 4 | COPY ssh /home/jenkins/.ssh 5 | RUN chown -R jenkins:jenkins /home/jenkins/ \ 6 | && chmod 700 /home/jenkins/.ssh \ 7 | && chmod 600 /home/jenkins/.ssh/* 8 | COPY ssh /root/.ssh 9 | RUN chown -R root:root /root/ \ 10 | && chmod 700 /root/.ssh \ 11 | && chmod 600 /root/.ssh/* 12 | COPY ssh/sshd_config /etc/ssh/sshd_config 13 | -------------------------------------------------------------------------------- /src/test/resources/hudson/plugins/sshslaves/agents/ssh-agent-curve25519-sha256/ssh/authorized_keys: -------------------------------------------------------------------------------- 1 | ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDPFhRz6+cukr0bcVLvzQI4ATQhuU1n5/34lGhrxF1v5SDSbGPRj65TAKMJCPjZBj+ydQi5t9xUk2RLfWXNiY3BqOcSNzXEfGk9Ubwm0wf0agXFwydWgmRPimRF6IYWPDUn35ustI5oE1YYS3Uc03nndOL/iqnoDd3TQAjX6CFjc8hg5oiMMZ6sSlmyKulJch+4RS3IfwNxXXzklivQ5UPL6QyT1hgl5/cpnVhu2ymtYEdH/sodw3YpxtD0CRlFTVdvxvuba0Z17T6AheINgXiRoShy9zFMcCjOU+Cbe57n77hLmroKKfMRVeVa7R1ceKXUq8tmN2rqobjpfALHWT34bdEBJoXGTO4wCrFlOzY2Nz4ePg1dv6Cojpo1IB9XM9hMubx1Qa9JrnL+Uc8qQmVChfs5Mv+xzQ4Q3h/BtjxDdNKvTYA3A6x53cirM2Pw+m5XYYEbB7c0bXvHcKW9cewI61PtRRXOz6w7LPvon+4+V/dGIawX1Ji8by6Lib13JEYveEHzu9GZSv20tEiT2vpPn59vXsGcxstOXAupCC1Gc5IMhIfXJTemcS+ZugOHJisZzvwwcKgwK4cXs9sWkaIL+sp2K6smKC+SzKXFQTGtOGYhEdn68ImNVN2El0nvphvl/fmVj9m2zwqKXT5M9dVYOs0jRwq/Vbh04JOD6lpLAw== inifc@warhead 2 | -------------------------------------------------------------------------------- /src/test/resources/hudson/plugins/sshslaves/agents/ssh-agent-curve25519-sha256/ssh/rsa-key: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | 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 51 | -----END RSA PRIVATE KEY----- 52 | -------------------------------------------------------------------------------- /src/test/resources/hudson/plugins/sshslaves/agents/ssh-agent-curve25519-sha256/ssh/rsa-key.pub: -------------------------------------------------------------------------------- 1 | ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDPFhRz6+cukr0bcVLvzQI4ATQhuU1n5/34lGhrxF1v5SDSbGPRj65TAKMJCPjZBj+ydQi5t9xUk2RLfWXNiY3BqOcSNzXEfGk9Ubwm0wf0agXFwydWgmRPimRF6IYWPDUn35ustI5oE1YYS3Uc03nndOL/iqnoDd3TQAjX6CFjc8hg5oiMMZ6sSlmyKulJch+4RS3IfwNxXXzklivQ5UPL6QyT1hgl5/cpnVhu2ymtYEdH/sodw3YpxtD0CRlFTVdvxvuba0Z17T6AheINgXiRoShy9zFMcCjOU+Cbe57n77hLmroKKfMRVeVa7R1ceKXUq8tmN2rqobjpfALHWT34bdEBJoXGTO4wCrFlOzY2Nz4ePg1dv6Cojpo1IB9XM9hMubx1Qa9JrnL+Uc8qQmVChfs5Mv+xzQ4Q3h/BtjxDdNKvTYA3A6x53cirM2Pw+m5XYYEbB7c0bXvHcKW9cewI61PtRRXOz6w7LPvon+4+V/dGIawX1Ji8by6Lib13JEYveEHzu9GZSv20tEiT2vpPn59vXsGcxstOXAupCC1Gc5IMhIfXJTemcS+ZugOHJisZzvwwcKgwK4cXs9sWkaIL+sp2K6smKC+SzKXFQTGtOGYhEdn68ImNVN2El0nvphvl/fmVj9m2zwqKXT5M9dVYOs0jRwq/Vbh04JOD6lpLAw== inifc@warhead 2 | -------------------------------------------------------------------------------- /src/test/resources/hudson/plugins/sshslaves/agents/ssh-agent-curve25519-sha256/ssh/sshd_config: -------------------------------------------------------------------------------- 1 | ChallengeResponseAuthentication no 2 | LogLevel DEBUG1 3 | UsePAM yes 4 | X11Forwarding yes 5 | PrintMotd yes 6 | AcceptEnv LANG LC_* 7 | PermitRootLogin no 8 | PasswordAuthentication yes 9 | GSSAPIAuthentication yes 10 | GSSAPICleanupCredentials yes 11 | ClientAliveInterval 600 12 | ClientAliveCountMax 4 13 | Subsystem sftp /usr/lib/openssh/sftp-server 14 | 15 | KexAlgorithms curve25519-sha256 16 | -------------------------------------------------------------------------------- /src/test/resources/hudson/plugins/sshslaves/agents/ssh-agent-dsa/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ghcr.io/jenkinsci/ssh-agents-plugin:baseb2fb086@sha256:2bc6d82ca2b406b0a2b509fd2308c38ae51de9f3e61cb1288e3421f6116bb27c 2 | USER root 3 | 4 | COPY ssh /home/jenkins/.ssh 5 | RUN chown -R jenkins:jenkins /home/jenkins/ \ 6 | && chmod 700 /home/jenkins/.ssh \ 7 | && chmod 600 /home/jenkins/.ssh/* 8 | COPY ssh /root/.ssh 9 | RUN chown -R root:root /root/ \ 10 | && chmod 700 /root/.ssh \ 11 | && chmod 600 /root/.ssh/* 12 | COPY ssh/sshd_config /etc/ssh/sshd_config 13 | -------------------------------------------------------------------------------- /src/test/resources/hudson/plugins/sshslaves/agents/ssh-agent-dsa/ssh/authorized_keys: -------------------------------------------------------------------------------- 1 | ssh-dss AAAAB3NzaC1kc3MAAACBALuABB7ZLPgkdljfCza3BVTCuZ2M0QYpx3KuGd7WvSN3bgAq9luTLRpbjoyNEH2dIjk8NtMXY3Yk1MjDeN6OGhyPHHlaVtiBoA2ct62Q/17+FPObLtyXd3B2jb7MRUbW1dGRqinWQGr/wmrkyE4Q9yEes4rcEmRHXwNhP5l5+1qzAAAAFQCoR/mlasRxdgbCZCx2gM8ajSSCEQAAAIBMsluPPDcueeoePBvHnPAGV5o+2Kbd6vvUIfOtuwjtAYFtbEQQdl9wUQq57oRWDfUDeuE4kHNgsVoc5HwsRPY+mF94kC2Q86CraEnmAMXOOvEGdWAkngFJGvRmoyCSt8cVXSZTMF9IXWjArn1/ov1U/KpUEXV62k+Bx3MjYhnzswAAAIBRYcOd6Ng8p/DSTogFFBqAOSqoTvHLxtE9jYmeJISA0c3V396cc0oNHrUrJnOywX5AROjKzx8D5HkQuxQnb4n2vHFgmK4oRlfHtNu4zTWBQfS98Yv6o2Rbi0vlPoOHNnZM1DReGvQdWVinMfgxTDFGqZLmI4+KifnnHYHec9t3NQ== inifc@The-toxic-avenger-II.local 2 | ssh-dss AAAAB3NzaC1kc3MAAACBAIRkGmYClOfQAADnNPWAfdjVcbFgLElXCDslFbn6T8xtCaxOAHDPhmbs9ZHxydRkfe3z+8AHJWs2ZC3OjkPiv90UO4/P9xozHkiBmfJ/340FNuRzhWAjVp5E9McPtQTXxR0dbuoaEHSqaXozGZg3HIeJOH/9t10B811LH0v6ID5tAAAAFQDzrk+j/PB+MLqZAnLjmZiWIufzywAAAIApxlvENHZPB4/q5eji+v2x7VQx2jsTBeVUbeY1dyWKre/nO/YS2ZG2iamt2cgcw17wf3FZ7Kymoatv7PNnhu76Lubjaq4tB7qBA08SwXEddyQLZyWXI5hyiySyBaGpXp/ViveSuNBbzIskr+GRDY7xzI3DoPCXgxwENJKlTFEEsQAAAIEAg11TglZ+DmUu7OtIaNX56vcdFGa14DGNjoUqtnH4s/JFttqqS55aZVKeQh8b+F8tSLptjK/IBS83n76bx+/cu+Ee3WDS0M2jnTGU/twKtL++7mkiQ7AdLH6JXmqoXGVgcfTM4zos8CNDXo+k+2hZuoX3yWrSBK68TPvMzYC4XfE= inifc@warhead 3 | -------------------------------------------------------------------------------- /src/test/resources/hudson/plugins/sshslaves/agents/ssh-agent-dsa/ssh/dsakey: -------------------------------------------------------------------------------- 1 | -----BEGIN DSA PRIVATE KEY----- 2 | MIIBvAIBAAKBgQCEZBpmApTn0AAA5zT1gH3Y1XGxYCxJVwg7JRW5+k/MbQmsTgBw 3 | z4Zm7PWR8cnUZH3t8/vAByVrNmQtzo5D4r/dFDuPz/caMx5IgZnyf9+NBTbkc4Vg 4 | I1aeRPTHD7UE18UdHW7qGhB0qml6MxmYNxyHiTh//bddAfNdSx9L+iA+bQIVAPOu 5 | T6P88H4wupkCcuOZmJYi5/PLAoGAKcZbxDR2TweP6uXo4vr9se1UMdo7EwXlVG3m 6 | NXcliq3v5zv2EtmRtomprdnIHMNe8H9xWeyspqGrb+zzZ4bu+i7m42quLQe6gQNP 7 | EsFxHXckC2cllyOYcosksgWhqV6f1Yr3krjQW8yLJK/hkQ2O8cyNw6Dwl4McBDSS 8 | pUxRBLECgYEAg11TglZ+DmUu7OtIaNX56vcdFGa14DGNjoUqtnH4s/JFttqqS55a 9 | ZVKeQh8b+F8tSLptjK/IBS83n76bx+/cu+Ee3WDS0M2jnTGU/twKtL++7mkiQ7Ad 10 | LH6JXmqoXGVgcfTM4zos8CNDXo+k+2hZuoX3yWrSBK68TPvMzYC4XfECFQCRkPdi 11 | 9X5QbN1RF5bD4qgnpOdQTg== 12 | -----END DSA PRIVATE KEY----- 13 | -------------------------------------------------------------------------------- /src/test/resources/hudson/plugins/sshslaves/agents/ssh-agent-dsa/ssh/dsakey.pub: -------------------------------------------------------------------------------- 1 | ssh-dss AAAAB3NzaC1kc3MAAACBAIRkGmYClOfQAADnNPWAfdjVcbFgLElXCDslFbn6T8xtCaxOAHDPhmbs9ZHxydRkfe3z+8AHJWs2ZC3OjkPiv90UO4/P9xozHkiBmfJ/340FNuRzhWAjVp5E9McPtQTXxR0dbuoaEHSqaXozGZg3HIeJOH/9t10B811LH0v6ID5tAAAAFQDzrk+j/PB+MLqZAnLjmZiWIufzywAAAIApxlvENHZPB4/q5eji+v2x7VQx2jsTBeVUbeY1dyWKre/nO/YS2ZG2iamt2cgcw17wf3FZ7Kymoatv7PNnhu76Lubjaq4tB7qBA08SwXEddyQLZyWXI5hyiySyBaGpXp/ViveSuNBbzIskr+GRDY7xzI3DoPCXgxwENJKlTFEEsQAAAIEAg11TglZ+DmUu7OtIaNX56vcdFGa14DGNjoUqtnH4s/JFttqqS55aZVKeQh8b+F8tSLptjK/IBS83n76bx+/cu+Ee3WDS0M2jnTGU/twKtL++7mkiQ7AdLH6JXmqoXGVgcfTM4zos8CNDXo+k+2hZuoX3yWrSBK68TPvMzYC4XfE= inifc@warhead 2 | -------------------------------------------------------------------------------- /src/test/resources/hudson/plugins/sshslaves/agents/ssh-agent-dsa/ssh/sshd_config: -------------------------------------------------------------------------------- 1 | ChallengeResponseAuthentication no 2 | LogLevel DEBUG1 3 | UsePAM yes 4 | X11Forwarding yes 5 | PrintMotd yes 6 | AcceptEnv LANG LC_* 7 | PermitRootLogin no 8 | PasswordAuthentication yes 9 | GSSAPIAuthentication yes 10 | GSSAPICleanupCredentials yes 11 | ClientAliveInterval 600 12 | ClientAliveCountMax 4 13 | Subsystem sftp /usr/lib/openssh/sftp-server 14 | PubkeyAcceptedKeyTypes=+ssh-dss 15 | HostbasedAcceptedKeyTypes=+ssh-dss 16 | HostKeyAlgorithms=+ssh-dss 17 | -------------------------------------------------------------------------------- /src/test/resources/hudson/plugins/sshslaves/agents/ssh-agent-ec/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ghcr.io/jenkinsci/ssh-agents-plugin:baseb2fb086@sha256:2bc6d82ca2b406b0a2b509fd2308c38ae51de9f3e61cb1288e3421f6116bb27c 2 | USER root 3 | 4 | COPY ssh /home/jenkins/.ssh 5 | RUN chown -R jenkins:jenkins /home/jenkins/ \ 6 | && chmod 700 /home/jenkins/.ssh \ 7 | && chmod 600 /home/jenkins/.ssh/* 8 | COPY ssh /root/.ssh 9 | RUN chown -R root:root /root/ \ 10 | && chmod 700 /root/.ssh \ 11 | && chmod 600 /root/.ssh/* 12 | COPY ssh/sshd_config /etc/ssh/sshd_config 13 | -------------------------------------------------------------------------------- /src/test/resources/hudson/plugins/sshslaves/agents/ssh-agent-ec/ssh/authorized_keys: -------------------------------------------------------------------------------- 1 | ecdsa-sha2-nistp521 AAAAE2VjZHNhLXNoYTItbmlzdHA1MjEAAAAIbmlzdHA1MjEAAACFBAFA6uJvyVvpQ66pJjNJqQVqXJv/IqsmCassTi7hU8H0unm03Lr6Y6oiQzhLzydDIOkUOeFtdWlD0W6m1iPh9e0GZgAOm21/P/rw2K0lM6TOw9+WNOpH08jgNr7ZAi4h9s7j8BC3kAOPtOCveTd56TRMloaraRSboibuHkZHJp3em98m3g== inifc@The-toxic-avenger-II.local 2 | ecdsa-sha2-nistp521 AAAAE2VjZHNhLXNoYTItbmlzdHA1MjEAAAAIbmlzdHA1MjEAAACFBACrCEb4WvC3MpRjVlRQ8t4BaQr0AlORvs7Aoj7o/BGCgkRx67eilJgi/xDa+DNEZU+fquFfcRCNQZC2DXaoE+5llgEVRq5mTb1WjjdKwSRjhPAXuVozy8Cgs4eghkPwMdmIJNTj9EVTpDHJgl+leMUY2PtTMRHkbwFEemlVH9BY7PaLNg== inifc@warhead 3 | -------------------------------------------------------------------------------- /src/test/resources/hudson/plugins/sshslaves/agents/ssh-agent-ec/ssh/ecdsakey: -------------------------------------------------------------------------------- 1 | -----BEGIN EC PRIVATE KEY----- 2 | MIHcAgEBBEIBeIQ4dghknd6NyyT3NLUxALQoCbtHGoBp9b5E/G5oD3ooBpndp88t 3 | 9va2XMMItUVH7XVOt7/Wo9L/OsMdw9neZHGgBwYFK4EEACOhgYkDgYYABACrCEb4 4 | WvC3MpRjVlRQ8t4BaQr0AlORvs7Aoj7o/BGCgkRx67eilJgi/xDa+DNEZU+fquFf 5 | cRCNQZC2DXaoE+5llgEVRq5mTb1WjjdKwSRjhPAXuVozy8Cgs4eghkPwMdmIJNTj 6 | 9EVTpDHJgl+leMUY2PtTMRHkbwFEemlVH9BY7PaLNg== 7 | -----END EC PRIVATE KEY----- 8 | -------------------------------------------------------------------------------- /src/test/resources/hudson/plugins/sshslaves/agents/ssh-agent-ec/ssh/ecdsakey.pub: -------------------------------------------------------------------------------- 1 | ecdsa-sha2-nistp521 AAAAE2VjZHNhLXNoYTItbmlzdHA1MjEAAAAIbmlzdHA1MjEAAACFBACrCEb4WvC3MpRjVlRQ8t4BaQr0AlORvs7Aoj7o/BGCgkRx67eilJgi/xDa+DNEZU+fquFfcRCNQZC2DXaoE+5llgEVRq5mTb1WjjdKwSRjhPAXuVozy8Cgs4eghkPwMdmIJNTj9EVTpDHJgl+leMUY2PtTMRHkbwFEemlVH9BY7PaLNg== inifc@warhead 2 | -------------------------------------------------------------------------------- /src/test/resources/hudson/plugins/sshslaves/agents/ssh-agent-ec/ssh/sshd_config: -------------------------------------------------------------------------------- 1 | ChallengeResponseAuthentication no 2 | LogLevel DEBUG1 3 | UsePAM yes 4 | X11Forwarding yes 5 | PrintMotd yes 6 | AcceptEnv LANG LC_* 7 | PermitRootLogin no 8 | PasswordAuthentication yes 9 | GSSAPIAuthentication yes 10 | GSSAPICleanupCredentials yes 11 | ClientAliveInterval 600 12 | ClientAliveCountMax 4 13 | Subsystem sftp /usr/lib/openssh/sftp-server 14 | PubkeyAcceptedKeyTypes ecdsa-sha2-nistp384,ecdsa-sha2-nistp521 15 | HostbasedAcceptedKeyTypes ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521 16 | HostKeyAlgorithms ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521 17 | -------------------------------------------------------------------------------- /src/test/resources/hudson/plugins/sshslaves/agents/ssh-agent-ecdh-sha2-nistp256/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ghcr.io/jenkinsci/ssh-agents-plugin:baseb2fb086@sha256:2bc6d82ca2b406b0a2b509fd2308c38ae51de9f3e61cb1288e3421f6116bb27c 2 | USER root 3 | 4 | COPY ssh /home/jenkins/.ssh 5 | RUN chown -R jenkins:jenkins /home/jenkins/ \ 6 | && chmod 700 /home/jenkins/.ssh \ 7 | && chmod 600 /home/jenkins/.ssh/* 8 | COPY ssh /root/.ssh 9 | RUN chown -R root:root /root/ \ 10 | && chmod 700 /root/.ssh \ 11 | && chmod 600 /root/.ssh/* 12 | COPY ssh/sshd_config /etc/ssh/sshd_config 13 | -------------------------------------------------------------------------------- /src/test/resources/hudson/plugins/sshslaves/agents/ssh-agent-ecdh-sha2-nistp256/ssh/authorized_keys: -------------------------------------------------------------------------------- 1 | ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDPFhRz6+cukr0bcVLvzQI4ATQhuU1n5/34lGhrxF1v5SDSbGPRj65TAKMJCPjZBj+ydQi5t9xUk2RLfWXNiY3BqOcSNzXEfGk9Ubwm0wf0agXFwydWgmRPimRF6IYWPDUn35ustI5oE1YYS3Uc03nndOL/iqnoDd3TQAjX6CFjc8hg5oiMMZ6sSlmyKulJch+4RS3IfwNxXXzklivQ5UPL6QyT1hgl5/cpnVhu2ymtYEdH/sodw3YpxtD0CRlFTVdvxvuba0Z17T6AheINgXiRoShy9zFMcCjOU+Cbe57n77hLmroKKfMRVeVa7R1ceKXUq8tmN2rqobjpfALHWT34bdEBJoXGTO4wCrFlOzY2Nz4ePg1dv6Cojpo1IB9XM9hMubx1Qa9JrnL+Uc8qQmVChfs5Mv+xzQ4Q3h/BtjxDdNKvTYA3A6x53cirM2Pw+m5XYYEbB7c0bXvHcKW9cewI61PtRRXOz6w7LPvon+4+V/dGIawX1Ji8by6Lib13JEYveEHzu9GZSv20tEiT2vpPn59vXsGcxstOXAupCC1Gc5IMhIfXJTemcS+ZugOHJisZzvwwcKgwK4cXs9sWkaIL+sp2K6smKC+SzKXFQTGtOGYhEdn68ImNVN2El0nvphvl/fmVj9m2zwqKXT5M9dVYOs0jRwq/Vbh04JOD6lpLAw== inifc@warhead 2 | -------------------------------------------------------------------------------- /src/test/resources/hudson/plugins/sshslaves/agents/ssh-agent-ecdh-sha2-nistp256/ssh/rsa-key: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | 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 51 | -----END RSA PRIVATE KEY----- 52 | -------------------------------------------------------------------------------- /src/test/resources/hudson/plugins/sshslaves/agents/ssh-agent-ecdh-sha2-nistp256/ssh/rsa-key.pub: -------------------------------------------------------------------------------- 1 | ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDPFhRz6+cukr0bcVLvzQI4ATQhuU1n5/34lGhrxF1v5SDSbGPRj65TAKMJCPjZBj+ydQi5t9xUk2RLfWXNiY3BqOcSNzXEfGk9Ubwm0wf0agXFwydWgmRPimRF6IYWPDUn35ustI5oE1YYS3Uc03nndOL/iqnoDd3TQAjX6CFjc8hg5oiMMZ6sSlmyKulJch+4RS3IfwNxXXzklivQ5UPL6QyT1hgl5/cpnVhu2ymtYEdH/sodw3YpxtD0CRlFTVdvxvuba0Z17T6AheINgXiRoShy9zFMcCjOU+Cbe57n77hLmroKKfMRVeVa7R1ceKXUq8tmN2rqobjpfALHWT34bdEBJoXGTO4wCrFlOzY2Nz4ePg1dv6Cojpo1IB9XM9hMubx1Qa9JrnL+Uc8qQmVChfs5Mv+xzQ4Q3h/BtjxDdNKvTYA3A6x53cirM2Pw+m5XYYEbB7c0bXvHcKW9cewI61PtRRXOz6w7LPvon+4+V/dGIawX1Ji8by6Lib13JEYveEHzu9GZSv20tEiT2vpPn59vXsGcxstOXAupCC1Gc5IMhIfXJTemcS+ZugOHJisZzvwwcKgwK4cXs9sWkaIL+sp2K6smKC+SzKXFQTGtOGYhEdn68ImNVN2El0nvphvl/fmVj9m2zwqKXT5M9dVYOs0jRwq/Vbh04JOD6lpLAw== inifc@warhead 2 | -------------------------------------------------------------------------------- /src/test/resources/hudson/plugins/sshslaves/agents/ssh-agent-ecdh-sha2-nistp256/ssh/sshd_config: -------------------------------------------------------------------------------- 1 | ChallengeResponseAuthentication no 2 | LogLevel DEBUG1 3 | UsePAM yes 4 | X11Forwarding yes 5 | PrintMotd yes 6 | AcceptEnv LANG LC_* 7 | PermitRootLogin no 8 | PasswordAuthentication yes 9 | GSSAPIAuthentication yes 10 | GSSAPICleanupCredentials yes 11 | ClientAliveInterval 600 12 | ClientAliveCountMax 4 13 | Subsystem sftp /usr/lib/openssh/sftp-server 14 | 15 | KexAlgorithms ecdh-sha2-nistp256 16 | -------------------------------------------------------------------------------- /src/test/resources/hudson/plugins/sshslaves/agents/ssh-agent-ecdh-sha2-nistp384/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ghcr.io/jenkinsci/ssh-agents-plugin:baseb2fb086@sha256:2bc6d82ca2b406b0a2b509fd2308c38ae51de9f3e61cb1288e3421f6116bb27c 2 | USER root 3 | 4 | COPY ssh /home/jenkins/.ssh 5 | RUN chown -R jenkins:jenkins /home/jenkins/ \ 6 | && chmod 700 /home/jenkins/.ssh \ 7 | && chmod 600 /home/jenkins/.ssh/* 8 | COPY ssh /root/.ssh 9 | RUN chown -R root:root /root/ \ 10 | && chmod 700 /root/.ssh \ 11 | && chmod 600 /root/.ssh/* 12 | COPY ssh/sshd_config /etc/ssh/sshd_config 13 | -------------------------------------------------------------------------------- /src/test/resources/hudson/plugins/sshslaves/agents/ssh-agent-ecdh-sha2-nistp384/ssh/authorized_keys: -------------------------------------------------------------------------------- 1 | ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDPFhRz6+cukr0bcVLvzQI4ATQhuU1n5/34lGhrxF1v5SDSbGPRj65TAKMJCPjZBj+ydQi5t9xUk2RLfWXNiY3BqOcSNzXEfGk9Ubwm0wf0agXFwydWgmRPimRF6IYWPDUn35ustI5oE1YYS3Uc03nndOL/iqnoDd3TQAjX6CFjc8hg5oiMMZ6sSlmyKulJch+4RS3IfwNxXXzklivQ5UPL6QyT1hgl5/cpnVhu2ymtYEdH/sodw3YpxtD0CRlFTVdvxvuba0Z17T6AheINgXiRoShy9zFMcCjOU+Cbe57n77hLmroKKfMRVeVa7R1ceKXUq8tmN2rqobjpfALHWT34bdEBJoXGTO4wCrFlOzY2Nz4ePg1dv6Cojpo1IB9XM9hMubx1Qa9JrnL+Uc8qQmVChfs5Mv+xzQ4Q3h/BtjxDdNKvTYA3A6x53cirM2Pw+m5XYYEbB7c0bXvHcKW9cewI61PtRRXOz6w7LPvon+4+V/dGIawX1Ji8by6Lib13JEYveEHzu9GZSv20tEiT2vpPn59vXsGcxstOXAupCC1Gc5IMhIfXJTemcS+ZugOHJisZzvwwcKgwK4cXs9sWkaIL+sp2K6smKC+SzKXFQTGtOGYhEdn68ImNVN2El0nvphvl/fmVj9m2zwqKXT5M9dVYOs0jRwq/Vbh04JOD6lpLAw== inifc@warhead 2 | -------------------------------------------------------------------------------- /src/test/resources/hudson/plugins/sshslaves/agents/ssh-agent-ecdh-sha2-nistp384/ssh/rsa-key: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | 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 51 | -----END RSA PRIVATE KEY----- 52 | -------------------------------------------------------------------------------- /src/test/resources/hudson/plugins/sshslaves/agents/ssh-agent-ecdh-sha2-nistp384/ssh/rsa-key.pub: -------------------------------------------------------------------------------- 1 | ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDPFhRz6+cukr0bcVLvzQI4ATQhuU1n5/34lGhrxF1v5SDSbGPRj65TAKMJCPjZBj+ydQi5t9xUk2RLfWXNiY3BqOcSNzXEfGk9Ubwm0wf0agXFwydWgmRPimRF6IYWPDUn35ustI5oE1YYS3Uc03nndOL/iqnoDd3TQAjX6CFjc8hg5oiMMZ6sSlmyKulJch+4RS3IfwNxXXzklivQ5UPL6QyT1hgl5/cpnVhu2ymtYEdH/sodw3YpxtD0CRlFTVdvxvuba0Z17T6AheINgXiRoShy9zFMcCjOU+Cbe57n77hLmroKKfMRVeVa7R1ceKXUq8tmN2rqobjpfALHWT34bdEBJoXGTO4wCrFlOzY2Nz4ePg1dv6Cojpo1IB9XM9hMubx1Qa9JrnL+Uc8qQmVChfs5Mv+xzQ4Q3h/BtjxDdNKvTYA3A6x53cirM2Pw+m5XYYEbB7c0bXvHcKW9cewI61PtRRXOz6w7LPvon+4+V/dGIawX1Ji8by6Lib13JEYveEHzu9GZSv20tEiT2vpPn59vXsGcxstOXAupCC1Gc5IMhIfXJTemcS+ZugOHJisZzvwwcKgwK4cXs9sWkaIL+sp2K6smKC+SzKXFQTGtOGYhEdn68ImNVN2El0nvphvl/fmVj9m2zwqKXT5M9dVYOs0jRwq/Vbh04JOD6lpLAw== inifc@warhead 2 | -------------------------------------------------------------------------------- /src/test/resources/hudson/plugins/sshslaves/agents/ssh-agent-ecdh-sha2-nistp384/ssh/sshd_config: -------------------------------------------------------------------------------- 1 | ChallengeResponseAuthentication no 2 | LogLevel DEBUG1 3 | UsePAM yes 4 | X11Forwarding yes 5 | PrintMotd yes 6 | AcceptEnv LANG LC_* 7 | PermitRootLogin no 8 | PasswordAuthentication yes 9 | GSSAPIAuthentication yes 10 | GSSAPICleanupCredentials yes 11 | ClientAliveInterval 600 12 | ClientAliveCountMax 4 13 | Subsystem sftp /usr/lib/openssh/sftp-server 14 | 15 | KexAlgorithms ecdh-sha2-nistp384 16 | -------------------------------------------------------------------------------- /src/test/resources/hudson/plugins/sshslaves/agents/ssh-agent-ecdh-sha2-nistp521/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ghcr.io/jenkinsci/ssh-agents-plugin:baseb2fb086@sha256:2bc6d82ca2b406b0a2b509fd2308c38ae51de9f3e61cb1288e3421f6116bb27c 2 | USER root 3 | 4 | COPY ssh /home/jenkins/.ssh 5 | RUN chown -R jenkins:jenkins /home/jenkins/ \ 6 | && chmod 700 /home/jenkins/.ssh \ 7 | && chmod 600 /home/jenkins/.ssh/* 8 | COPY ssh /root/.ssh 9 | RUN chown -R root:root /root/ \ 10 | && chmod 700 /root/.ssh \ 11 | && chmod 600 /root/.ssh/* 12 | COPY ssh/sshd_config /etc/ssh/sshd_config 13 | -------------------------------------------------------------------------------- /src/test/resources/hudson/plugins/sshslaves/agents/ssh-agent-ecdh-sha2-nistp521/ssh/authorized_keys: -------------------------------------------------------------------------------- 1 | ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDPFhRz6+cukr0bcVLvzQI4ATQhuU1n5/34lGhrxF1v5SDSbGPRj65TAKMJCPjZBj+ydQi5t9xUk2RLfWXNiY3BqOcSNzXEfGk9Ubwm0wf0agXFwydWgmRPimRF6IYWPDUn35ustI5oE1YYS3Uc03nndOL/iqnoDd3TQAjX6CFjc8hg5oiMMZ6sSlmyKulJch+4RS3IfwNxXXzklivQ5UPL6QyT1hgl5/cpnVhu2ymtYEdH/sodw3YpxtD0CRlFTVdvxvuba0Z17T6AheINgXiRoShy9zFMcCjOU+Cbe57n77hLmroKKfMRVeVa7R1ceKXUq8tmN2rqobjpfALHWT34bdEBJoXGTO4wCrFlOzY2Nz4ePg1dv6Cojpo1IB9XM9hMubx1Qa9JrnL+Uc8qQmVChfs5Mv+xzQ4Q3h/BtjxDdNKvTYA3A6x53cirM2Pw+m5XYYEbB7c0bXvHcKW9cewI61PtRRXOz6w7LPvon+4+V/dGIawX1Ji8by6Lib13JEYveEHzu9GZSv20tEiT2vpPn59vXsGcxstOXAupCC1Gc5IMhIfXJTemcS+ZugOHJisZzvwwcKgwK4cXs9sWkaIL+sp2K6smKC+SzKXFQTGtOGYhEdn68ImNVN2El0nvphvl/fmVj9m2zwqKXT5M9dVYOs0jRwq/Vbh04JOD6lpLAw== inifc@warhead 2 | -------------------------------------------------------------------------------- /src/test/resources/hudson/plugins/sshslaves/agents/ssh-agent-ecdh-sha2-nistp521/ssh/rsa-key: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | 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 51 | -----END RSA PRIVATE KEY----- 52 | -------------------------------------------------------------------------------- /src/test/resources/hudson/plugins/sshslaves/agents/ssh-agent-ecdh-sha2-nistp521/ssh/rsa-key.pub: -------------------------------------------------------------------------------- 1 | ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDPFhRz6+cukr0bcVLvzQI4ATQhuU1n5/34lGhrxF1v5SDSbGPRj65TAKMJCPjZBj+ydQi5t9xUk2RLfWXNiY3BqOcSNzXEfGk9Ubwm0wf0agXFwydWgmRPimRF6IYWPDUn35ustI5oE1YYS3Uc03nndOL/iqnoDd3TQAjX6CFjc8hg5oiMMZ6sSlmyKulJch+4RS3IfwNxXXzklivQ5UPL6QyT1hgl5/cpnVhu2ymtYEdH/sodw3YpxtD0CRlFTVdvxvuba0Z17T6AheINgXiRoShy9zFMcCjOU+Cbe57n77hLmroKKfMRVeVa7R1ceKXUq8tmN2rqobjpfALHWT34bdEBJoXGTO4wCrFlOzY2Nz4ePg1dv6Cojpo1IB9XM9hMubx1Qa9JrnL+Uc8qQmVChfs5Mv+xzQ4Q3h/BtjxDdNKvTYA3A6x53cirM2Pw+m5XYYEbB7c0bXvHcKW9cewI61PtRRXOz6w7LPvon+4+V/dGIawX1Ji8by6Lib13JEYveEHzu9GZSv20tEiT2vpPn59vXsGcxstOXAupCC1Gc5IMhIfXJTemcS+ZugOHJisZzvwwcKgwK4cXs9sWkaIL+sp2K6smKC+SzKXFQTGtOGYhEdn68ImNVN2El0nvphvl/fmVj9m2zwqKXT5M9dVYOs0jRwq/Vbh04JOD6lpLAw== inifc@warhead 2 | -------------------------------------------------------------------------------- /src/test/resources/hudson/plugins/sshslaves/agents/ssh-agent-ecdh-sha2-nistp521/ssh/sshd_config: -------------------------------------------------------------------------------- 1 | ChallengeResponseAuthentication no 2 | LogLevel DEBUG1 3 | UsePAM yes 4 | X11Forwarding yes 5 | PrintMotd yes 6 | AcceptEnv LANG LC_* 7 | PermitRootLogin no 8 | PasswordAuthentication yes 9 | GSSAPIAuthentication yes 10 | GSSAPICleanupCredentials yes 11 | ClientAliveInterval 600 12 | ClientAliveCountMax 4 13 | Subsystem sftp /usr/lib/openssh/sftp-server 14 | 15 | KexAlgorithms ecdh-sha2-nistp521 16 | -------------------------------------------------------------------------------- /src/test/resources/hudson/plugins/sshslaves/agents/ssh-agent-ed25519/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ghcr.io/jenkinsci/ssh-agents-plugin:baseb2fb086@sha256:2bc6d82ca2b406b0a2b509fd2308c38ae51de9f3e61cb1288e3421f6116bb27c 2 | USER root 3 | 4 | COPY ssh /home/jenkins/.ssh 5 | RUN chown -R jenkins:jenkins /home/jenkins/ \ 6 | && chmod 700 /home/jenkins/.ssh \ 7 | && chmod 600 /home/jenkins/.ssh/* 8 | COPY ssh /root/.ssh 9 | RUN chown -R root:root /root/ \ 10 | && chmod 700 /root/.ssh \ 11 | && chmod 600 /root/.ssh/* 12 | COPY ssh/sshd_config /etc/ssh/sshd_config 13 | -------------------------------------------------------------------------------- /src/test/resources/hudson/plugins/sshslaves/agents/ssh-agent-ed25519/ssh/authorized_keys: -------------------------------------------------------------------------------- 1 | ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDqJQOoriErxxy+uvboaC6ADzZWiyAN/ZERFxt3tHW2z inifc@The-toxic-avenger-II.local 2 | ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPRPSAhS3dFyNAlnxKPoewUppNgO5rYXo1YUIlc5rz+q inifc@warhead 3 | -------------------------------------------------------------------------------- /src/test/resources/hudson/plugins/sshslaves/agents/ssh-agent-ed25519/ssh/ed25519key: -------------------------------------------------------------------------------- 1 | -----BEGIN OPENSSH PRIVATE KEY----- 2 | b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZW 3 | QyNTUxOQAAACD0T0gIUt3RcjQJZ8Sj6HsFKaTYDua2F6NWFCJXOa8/qgAAAJACR0HzAkdB 4 | 8wAAAAtzc2gtZWQyNTUxOQAAACD0T0gIUt3RcjQJZ8Sj6HsFKaTYDua2F6NWFCJXOa8/qg 5 | AAAECIeu3SkXljb1tGkH+kEJNNK2g19QbPz/Vi9lZVU45A+/RPSAhS3dFyNAlnxKPoewUp 6 | pNgO5rYXo1YUIlc5rz+qAAAADWluaWZjQHdhcmhlYWQ= 7 | -----END OPENSSH PRIVATE KEY----- 8 | -------------------------------------------------------------------------------- /src/test/resources/hudson/plugins/sshslaves/agents/ssh-agent-ed25519/ssh/ed25519key.pub: -------------------------------------------------------------------------------- 1 | ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPRPSAhS3dFyNAlnxKPoewUppNgO5rYXo1YUIlc5rz+q inifc@warhead 2 | -------------------------------------------------------------------------------- /src/test/resources/hudson/plugins/sshslaves/agents/ssh-agent-ed25519/ssh/sshd_config: -------------------------------------------------------------------------------- 1 | ChallengeResponseAuthentication no 2 | LogLevel DEBUG1 3 | UsePAM yes 4 | X11Forwarding yes 5 | PrintMotd yes 6 | AcceptEnv LANG LC_* 7 | PermitRootLogin no 8 | PasswordAuthentication yes 9 | GSSAPIAuthentication yes 10 | GSSAPICleanupCredentials yes 11 | ClientAliveInterval 600 12 | ClientAliveCountMax 4 13 | Subsystem sftp /usr/lib/openssh/sftp-server 14 | PubkeyAcceptedKeyTypes ssh-ed25519 15 | HostbasedAcceptedKeyTypes ssh-ed25519 16 | HostKeyAlgorithms ssh-ed25519 17 | -------------------------------------------------------------------------------- /src/test/resources/hudson/plugins/sshslaves/agents/ssh-agent-host-ec/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ghcr.io/jenkinsci/ssh-agents-plugin:baseb2fb086@sha256:2bc6d82ca2b406b0a2b509fd2308c38ae51de9f3e61cb1288e3421f6116bb27c 2 | USER root 3 | 4 | COPY ssh /home/jenkins/.ssh 5 | RUN chown -R jenkins:jenkins /home/jenkins/ \ 6 | && chmod 700 /home/jenkins/.ssh \ 7 | && chmod 600 /home/jenkins/.ssh/* 8 | COPY ssh /root/.ssh 9 | RUN chown -R root:root /root/ \ 10 | && chmod 700 /root/.ssh \ 11 | && chmod 600 /root/.ssh/* 12 | COPY ssh/sshd_config /etc/ssh/sshd_config 13 | 14 | RUN rm /etc/ssh/ssh_host_ed* /etc/ssh/ssh_host_rsa* 15 | -------------------------------------------------------------------------------- /src/test/resources/hudson/plugins/sshslaves/agents/ssh-agent-host-ec/ssh/authorized_keys: -------------------------------------------------------------------------------- 1 | ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDPFhRz6+cukr0bcVLvzQI4ATQhuU1n5/34lGhrxF1v5SDSbGPRj65TAKMJCPjZBj+ydQi5t9xUk2RLfWXNiY3BqOcSNzXEfGk9Ubwm0wf0agXFwydWgmRPimRF6IYWPDUn35ustI5oE1YYS3Uc03nndOL/iqnoDd3TQAjX6CFjc8hg5oiMMZ6sSlmyKulJch+4RS3IfwNxXXzklivQ5UPL6QyT1hgl5/cpnVhu2ymtYEdH/sodw3YpxtD0CRlFTVdvxvuba0Z17T6AheINgXiRoShy9zFMcCjOU+Cbe57n77hLmroKKfMRVeVa7R1ceKXUq8tmN2rqobjpfALHWT34bdEBJoXGTO4wCrFlOzY2Nz4ePg1dv6Cojpo1IB9XM9hMubx1Qa9JrnL+Uc8qQmVChfs5Mv+xzQ4Q3h/BtjxDdNKvTYA3A6x53cirM2Pw+m5XYYEbB7c0bXvHcKW9cewI61PtRRXOz6w7LPvon+4+V/dGIawX1Ji8by6Lib13JEYveEHzu9GZSv20tEiT2vpPn59vXsGcxstOXAupCC1Gc5IMhIfXJTemcS+ZugOHJisZzvwwcKgwK4cXs9sWkaIL+sp2K6smKC+SzKXFQTGtOGYhEdn68ImNVN2El0nvphvl/fmVj9m2zwqKXT5M9dVYOs0jRwq/Vbh04JOD6lpLAw== inifc@warhead 2 | -------------------------------------------------------------------------------- /src/test/resources/hudson/plugins/sshslaves/agents/ssh-agent-host-ec/ssh/rsa-key: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | 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 51 | -----END RSA PRIVATE KEY----- 52 | -------------------------------------------------------------------------------- /src/test/resources/hudson/plugins/sshslaves/agents/ssh-agent-host-ec/ssh/rsa-key.pub: -------------------------------------------------------------------------------- 1 | ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDPFhRz6+cukr0bcVLvzQI4ATQhuU1n5/34lGhrxF1v5SDSbGPRj65TAKMJCPjZBj+ydQi5t9xUk2RLfWXNiY3BqOcSNzXEfGk9Ubwm0wf0agXFwydWgmRPimRF6IYWPDUn35ustI5oE1YYS3Uc03nndOL/iqnoDd3TQAjX6CFjc8hg5oiMMZ6sSlmyKulJch+4RS3IfwNxXXzklivQ5UPL6QyT1hgl5/cpnVhu2ymtYEdH/sodw3YpxtD0CRlFTVdvxvuba0Z17T6AheINgXiRoShy9zFMcCjOU+Cbe57n77hLmroKKfMRVeVa7R1ceKXUq8tmN2rqobjpfALHWT34bdEBJoXGTO4wCrFlOzY2Nz4ePg1dv6Cojpo1IB9XM9hMubx1Qa9JrnL+Uc8qQmVChfs5Mv+xzQ4Q3h/BtjxDdNKvTYA3A6x53cirM2Pw+m5XYYEbB7c0bXvHcKW9cewI61PtRRXOz6w7LPvon+4+V/dGIawX1Ji8by6Lib13JEYveEHzu9GZSv20tEiT2vpPn59vXsGcxstOXAupCC1Gc5IMhIfXJTemcS+ZugOHJisZzvwwcKgwK4cXs9sWkaIL+sp2K6smKC+SzKXFQTGtOGYhEdn68ImNVN2El0nvphvl/fmVj9m2zwqKXT5M9dVYOs0jRwq/Vbh04JOD6lpLAw== inifc@warhead 2 | -------------------------------------------------------------------------------- /src/test/resources/hudson/plugins/sshslaves/agents/ssh-agent-host-ec/ssh/sshd_config: -------------------------------------------------------------------------------- 1 | ChallengeResponseAuthentication no 2 | LogLevel DEBUG1 3 | UsePAM yes 4 | X11Forwarding yes 5 | PrintMotd yes 6 | AcceptEnv LANG LC_* 7 | PermitRootLogin no 8 | PasswordAuthentication yes 9 | GSSAPIAuthentication yes 10 | GSSAPICleanupCredentials yes 11 | ClientAliveInterval 600 12 | ClientAliveCountMax 4 13 | Subsystem sftp /usr/lib/openssh/sftp-server 14 | -------------------------------------------------------------------------------- /src/test/resources/hudson/plugins/sshslaves/agents/ssh-agent-host-ed/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ghcr.io/jenkinsci/ssh-agents-plugin:baseb2fb086@sha256:2bc6d82ca2b406b0a2b509fd2308c38ae51de9f3e61cb1288e3421f6116bb27c 2 | USER root 3 | 4 | COPY ssh /home/jenkins/.ssh 5 | RUN chown -R jenkins:jenkins /home/jenkins/ \ 6 | && chmod 700 /home/jenkins/.ssh \ 7 | && chmod 600 /home/jenkins/.ssh/* 8 | COPY ssh /root/.ssh 9 | RUN chown -R root:root /root/ \ 10 | && chmod 700 /root/.ssh \ 11 | && chmod 600 /root/.ssh/* 12 | COPY ssh/sshd_config /etc/ssh/sshd_config 13 | 14 | RUN rm /etc/ssh/ssh_host_ec* /etc/ssh/ssh_host_rsa* 15 | -------------------------------------------------------------------------------- /src/test/resources/hudson/plugins/sshslaves/agents/ssh-agent-host-ed/ssh/authorized_keys: -------------------------------------------------------------------------------- 1 | ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDPFhRz6+cukr0bcVLvzQI4ATQhuU1n5/34lGhrxF1v5SDSbGPRj65TAKMJCPjZBj+ydQi5t9xUk2RLfWXNiY3BqOcSNzXEfGk9Ubwm0wf0agXFwydWgmRPimRF6IYWPDUn35ustI5oE1YYS3Uc03nndOL/iqnoDd3TQAjX6CFjc8hg5oiMMZ6sSlmyKulJch+4RS3IfwNxXXzklivQ5UPL6QyT1hgl5/cpnVhu2ymtYEdH/sodw3YpxtD0CRlFTVdvxvuba0Z17T6AheINgXiRoShy9zFMcCjOU+Cbe57n77hLmroKKfMRVeVa7R1ceKXUq8tmN2rqobjpfALHWT34bdEBJoXGTO4wCrFlOzY2Nz4ePg1dv6Cojpo1IB9XM9hMubx1Qa9JrnL+Uc8qQmVChfs5Mv+xzQ4Q3h/BtjxDdNKvTYA3A6x53cirM2Pw+m5XYYEbB7c0bXvHcKW9cewI61PtRRXOz6w7LPvon+4+V/dGIawX1Ji8by6Lib13JEYveEHzu9GZSv20tEiT2vpPn59vXsGcxstOXAupCC1Gc5IMhIfXJTemcS+ZugOHJisZzvwwcKgwK4cXs9sWkaIL+sp2K6smKC+SzKXFQTGtOGYhEdn68ImNVN2El0nvphvl/fmVj9m2zwqKXT5M9dVYOs0jRwq/Vbh04JOD6lpLAw== inifc@warhead 2 | -------------------------------------------------------------------------------- /src/test/resources/hudson/plugins/sshslaves/agents/ssh-agent-host-ed/ssh/rsa-key: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | 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 51 | -----END RSA PRIVATE KEY----- 52 | -------------------------------------------------------------------------------- /src/test/resources/hudson/plugins/sshslaves/agents/ssh-agent-host-ed/ssh/rsa-key.pub: -------------------------------------------------------------------------------- 1 | ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDPFhRz6+cukr0bcVLvzQI4ATQhuU1n5/34lGhrxF1v5SDSbGPRj65TAKMJCPjZBj+ydQi5t9xUk2RLfWXNiY3BqOcSNzXEfGk9Ubwm0wf0agXFwydWgmRPimRF6IYWPDUn35ustI5oE1YYS3Uc03nndOL/iqnoDd3TQAjX6CFjc8hg5oiMMZ6sSlmyKulJch+4RS3IfwNxXXzklivQ5UPL6QyT1hgl5/cpnVhu2ymtYEdH/sodw3YpxtD0CRlFTVdvxvuba0Z17T6AheINgXiRoShy9zFMcCjOU+Cbe57n77hLmroKKfMRVeVa7R1ceKXUq8tmN2rqobjpfALHWT34bdEBJoXGTO4wCrFlOzY2Nz4ePg1dv6Cojpo1IB9XM9hMubx1Qa9JrnL+Uc8qQmVChfs5Mv+xzQ4Q3h/BtjxDdNKvTYA3A6x53cirM2Pw+m5XYYEbB7c0bXvHcKW9cewI61PtRRXOz6w7LPvon+4+V/dGIawX1Ji8by6Lib13JEYveEHzu9GZSv20tEiT2vpPn59vXsGcxstOXAupCC1Gc5IMhIfXJTemcS+ZugOHJisZzvwwcKgwK4cXs9sWkaIL+sp2K6smKC+SzKXFQTGtOGYhEdn68ImNVN2El0nvphvl/fmVj9m2zwqKXT5M9dVYOs0jRwq/Vbh04JOD6lpLAw== inifc@warhead 2 | -------------------------------------------------------------------------------- /src/test/resources/hudson/plugins/sshslaves/agents/ssh-agent-host-ed/ssh/sshd_config: -------------------------------------------------------------------------------- 1 | ChallengeResponseAuthentication no 2 | LogLevel DEBUG1 3 | UsePAM yes 4 | X11Forwarding yes 5 | PrintMotd yes 6 | AcceptEnv LANG LC_* 7 | PermitRootLogin no 8 | PasswordAuthentication yes 9 | GSSAPIAuthentication yes 10 | GSSAPICleanupCredentials yes 11 | ClientAliveInterval 600 12 | ClientAliveCountMax 4 13 | Subsystem sftp /usr/lib/openssh/sftp-server 14 | -------------------------------------------------------------------------------- /src/test/resources/hudson/plugins/sshslaves/agents/ssh-agent-host-rsa/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ghcr.io/jenkinsci/ssh-agents-plugin:baseb2fb086@sha256:2bc6d82ca2b406b0a2b509fd2308c38ae51de9f3e61cb1288e3421f6116bb27c 2 | USER root 3 | 4 | COPY ssh /home/jenkins/.ssh 5 | RUN chown -R jenkins:jenkins /home/jenkins/ \ 6 | && chmod 700 /home/jenkins/.ssh \ 7 | && chmod 600 /home/jenkins/.ssh/* 8 | COPY ssh /root/.ssh 9 | RUN chown -R root:root /root/ \ 10 | && chmod 700 /root/.ssh \ 11 | && chmod 600 /root/.ssh/* 12 | COPY ssh/sshd_config /etc/ssh/sshd_config 13 | 14 | RUN rm /etc/ssh/ssh_host_ed* /etc/ssh/ssh_host_ec* 15 | -------------------------------------------------------------------------------- /src/test/resources/hudson/plugins/sshslaves/agents/ssh-agent-host-rsa/ssh/authorized_keys: -------------------------------------------------------------------------------- 1 | ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDPFhRz6+cukr0bcVLvzQI4ATQhuU1n5/34lGhrxF1v5SDSbGPRj65TAKMJCPjZBj+ydQi5t9xUk2RLfWXNiY3BqOcSNzXEfGk9Ubwm0wf0agXFwydWgmRPimRF6IYWPDUn35ustI5oE1YYS3Uc03nndOL/iqnoDd3TQAjX6CFjc8hg5oiMMZ6sSlmyKulJch+4RS3IfwNxXXzklivQ5UPL6QyT1hgl5/cpnVhu2ymtYEdH/sodw3YpxtD0CRlFTVdvxvuba0Z17T6AheINgXiRoShy9zFMcCjOU+Cbe57n77hLmroKKfMRVeVa7R1ceKXUq8tmN2rqobjpfALHWT34bdEBJoXGTO4wCrFlOzY2Nz4ePg1dv6Cojpo1IB9XM9hMubx1Qa9JrnL+Uc8qQmVChfs5Mv+xzQ4Q3h/BtjxDdNKvTYA3A6x53cirM2Pw+m5XYYEbB7c0bXvHcKW9cewI61PtRRXOz6w7LPvon+4+V/dGIawX1Ji8by6Lib13JEYveEHzu9GZSv20tEiT2vpPn59vXsGcxstOXAupCC1Gc5IMhIfXJTemcS+ZugOHJisZzvwwcKgwK4cXs9sWkaIL+sp2K6smKC+SzKXFQTGtOGYhEdn68ImNVN2El0nvphvl/fmVj9m2zwqKXT5M9dVYOs0jRwq/Vbh04JOD6lpLAw== inifc@warhead 2 | -------------------------------------------------------------------------------- /src/test/resources/hudson/plugins/sshslaves/agents/ssh-agent-host-rsa/ssh/rsa-key: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | 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 51 | -----END RSA PRIVATE KEY----- 52 | -------------------------------------------------------------------------------- /src/test/resources/hudson/plugins/sshslaves/agents/ssh-agent-host-rsa/ssh/rsa-key.pub: -------------------------------------------------------------------------------- 1 | ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDPFhRz6+cukr0bcVLvzQI4ATQhuU1n5/34lGhrxF1v5SDSbGPRj65TAKMJCPjZBj+ydQi5t9xUk2RLfWXNiY3BqOcSNzXEfGk9Ubwm0wf0agXFwydWgmRPimRF6IYWPDUn35ustI5oE1YYS3Uc03nndOL/iqnoDd3TQAjX6CFjc8hg5oiMMZ6sSlmyKulJch+4RS3IfwNxXXzklivQ5UPL6QyT1hgl5/cpnVhu2ymtYEdH/sodw3YpxtD0CRlFTVdvxvuba0Z17T6AheINgXiRoShy9zFMcCjOU+Cbe57n77hLmroKKfMRVeVa7R1ceKXUq8tmN2rqobjpfALHWT34bdEBJoXGTO4wCrFlOzY2Nz4ePg1dv6Cojpo1IB9XM9hMubx1Qa9JrnL+Uc8qQmVChfs5Mv+xzQ4Q3h/BtjxDdNKvTYA3A6x53cirM2Pw+m5XYYEbB7c0bXvHcKW9cewI61PtRRXOz6w7LPvon+4+V/dGIawX1Ji8by6Lib13JEYveEHzu9GZSv20tEiT2vpPn59vXsGcxstOXAupCC1Gc5IMhIfXJTemcS+ZugOHJisZzvwwcKgwK4cXs9sWkaIL+sp2K6smKC+SzKXFQTGtOGYhEdn68ImNVN2El0nvphvl/fmVj9m2zwqKXT5M9dVYOs0jRwq/Vbh04JOD6lpLAw== inifc@warhead 2 | -------------------------------------------------------------------------------- /src/test/resources/hudson/plugins/sshslaves/agents/ssh-agent-host-rsa/ssh/sshd_config: -------------------------------------------------------------------------------- 1 | ChallengeResponseAuthentication no 2 | LogLevel DEBUG1 3 | UsePAM yes 4 | X11Forwarding yes 5 | PrintMotd yes 6 | AcceptEnv LANG LC_* 7 | PermitRootLogin no 8 | PasswordAuthentication yes 9 | GSSAPIAuthentication yes 10 | GSSAPICleanupCredentials yes 11 | ClientAliveInterval 600 12 | ClientAliveCountMax 4 13 | Subsystem sftp /usr/lib/openssh/sftp-server 14 | -------------------------------------------------------------------------------- /src/test/resources/hudson/plugins/sshslaves/agents/ssh-agent-rsa/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ghcr.io/jenkinsci/ssh-agents-plugin:baseb2fb086@sha256:2bc6d82ca2b406b0a2b509fd2308c38ae51de9f3e61cb1288e3421f6116bb27c 2 | USER root 3 | 4 | COPY ssh /home/jenkins/.ssh 5 | RUN chown -R jenkins:jenkins /home/jenkins/ \ 6 | && chmod 700 /home/jenkins/.ssh \ 7 | && chmod 600 /home/jenkins/.ssh/* 8 | COPY ssh /root/.ssh 9 | RUN chown -R root:root /root/ \ 10 | && chmod 700 /root/.ssh \ 11 | && chmod 600 /root/.ssh/* 12 | COPY ssh/sshd_config /etc/ssh/sshd_config 13 | -------------------------------------------------------------------------------- /src/test/resources/hudson/plugins/sshslaves/agents/ssh-agent-rsa/ssh/authorized_keys: -------------------------------------------------------------------------------- 1 | ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDPFhRz6+cukr0bcVLvzQI4ATQhuU1n5/34lGhrxF1v5SDSbGPRj65TAKMJCPjZBj+ydQi5t9xUk2RLfWXNiY3BqOcSNzXEfGk9Ubwm0wf0agXFwydWgmRPimRF6IYWPDUn35ustI5oE1YYS3Uc03nndOL/iqnoDd3TQAjX6CFjc8hg5oiMMZ6sSlmyKulJch+4RS3IfwNxXXzklivQ5UPL6QyT1hgl5/cpnVhu2ymtYEdH/sodw3YpxtD0CRlFTVdvxvuba0Z17T6AheINgXiRoShy9zFMcCjOU+Cbe57n77hLmroKKfMRVeVa7R1ceKXUq8tmN2rqobjpfALHWT34bdEBJoXGTO4wCrFlOzY2Nz4ePg1dv6Cojpo1IB9XM9hMubx1Qa9JrnL+Uc8qQmVChfs5Mv+xzQ4Q3h/BtjxDdNKvTYA3A6x53cirM2Pw+m5XYYEbB7c0bXvHcKW9cewI61PtRRXOz6w7LPvon+4+V/dGIawX1Ji8by6Lib13JEYveEHzu9GZSv20tEiT2vpPn59vXsGcxstOXAupCC1Gc5IMhIfXJTemcS+ZugOHJisZzvwwcKgwK4cXs9sWkaIL+sp2K6smKC+SzKXFQTGtOGYhEdn68ImNVN2El0nvphvl/fmVj9m2zwqKXT5M9dVYOs0jRwq/Vbh04JOD6lpLAw== inifc@warhead 2 | -------------------------------------------------------------------------------- /src/test/resources/hudson/plugins/sshslaves/agents/ssh-agent-rsa/ssh/rsa-key: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | 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 51 | -----END RSA PRIVATE KEY----- 52 | -------------------------------------------------------------------------------- /src/test/resources/hudson/plugins/sshslaves/agents/ssh-agent-rsa/ssh/rsa-key-des-cbc: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | Proc-Type: 4,ENCRYPTED 3 | DEK-Info: DES-CBC,41228C5CF14D6ECA 4 | 5 | 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 54 | -----END RSA PRIVATE KEY----- 55 | -------------------------------------------------------------------------------- /src/test/resources/hudson/plugins/sshslaves/agents/ssh-agent-rsa/ssh/rsa-key.pub: -------------------------------------------------------------------------------- 1 | ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDPFhRz6+cukr0bcVLvzQI4ATQhuU1n5/34lGhrxF1v5SDSbGPRj65TAKMJCPjZBj+ydQi5t9xUk2RLfWXNiY3BqOcSNzXEfGk9Ubwm0wf0agXFwydWgmRPimRF6IYWPDUn35ustI5oE1YYS3Uc03nndOL/iqnoDd3TQAjX6CFjc8hg5oiMMZ6sSlmyKulJch+4RS3IfwNxXXzklivQ5UPL6QyT1hgl5/cpnVhu2ymtYEdH/sodw3YpxtD0CRlFTVdvxvuba0Z17T6AheINgXiRoShy9zFMcCjOU+Cbe57n77hLmroKKfMRVeVa7R1ceKXUq8tmN2rqobjpfALHWT34bdEBJoXGTO4wCrFlOzY2Nz4ePg1dv6Cojpo1IB9XM9hMubx1Qa9JrnL+Uc8qQmVChfs5Mv+xzQ4Q3h/BtjxDdNKvTYA3A6x53cirM2Pw+m5XYYEbB7c0bXvHcKW9cewI61PtRRXOz6w7LPvon+4+V/dGIawX1Ji8by6Lib13JEYveEHzu9GZSv20tEiT2vpPn59vXsGcxstOXAupCC1Gc5IMhIfXJTemcS+ZugOHJisZzvwwcKgwK4cXs9sWkaIL+sp2K6smKC+SzKXFQTGtOGYhEdn68ImNVN2El0nvphvl/fmVj9m2zwqKXT5M9dVYOs0jRwq/Vbh04JOD6lpLAw== inifc@warhead 2 | -------------------------------------------------------------------------------- /src/test/resources/hudson/plugins/sshslaves/agents/ssh-agent-rsa/ssh/sshd_config: -------------------------------------------------------------------------------- 1 | ChallengeResponseAuthentication no 2 | LogLevel DEBUG1 3 | UsePAM yes 4 | X11Forwarding yes 5 | PrintMotd yes 6 | AcceptEnv LANG LC_* 7 | PermitRootLogin no 8 | PasswordAuthentication yes 9 | GSSAPIAuthentication yes 10 | GSSAPICleanupCredentials yes 11 | ClientAliveInterval 600 12 | ClientAliveCountMax 4 13 | Subsystem sftp /usr/lib/openssh/sftp-server 14 | PubkeyAcceptedKeyTypes ssh-rsa 15 | HostbasedAcceptedKeyTypes ssh-rsa 16 | HostKeyAlgorithms ssh-rsa 17 | -------------------------------------------------------------------------------- /src/test/resources/hudson/plugins/sshslaves/agents/ssh-agent-rsa256/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ghcr.io/jenkinsci/ssh-agents-plugin:baseb2fb086@sha256:2bc6d82ca2b406b0a2b509fd2308c38ae51de9f3e61cb1288e3421f6116bb27c 2 | USER root 3 | 4 | COPY ssh /home/jenkins/.ssh 5 | RUN chown -R jenkins:jenkins /home/jenkins/ \ 6 | && chmod 700 /home/jenkins/.ssh \ 7 | && chmod 600 /home/jenkins/.ssh/* 8 | COPY ssh /root/.ssh 9 | RUN chown -R root:root /root/ \ 10 | && chmod 700 /root/.ssh \ 11 | && chmod 600 /root/.ssh/* 12 | COPY ssh/sshd_config /etc/ssh/sshd_config 13 | -------------------------------------------------------------------------------- /src/test/resources/hudson/plugins/sshslaves/agents/ssh-agent-rsa256/ssh/authorized_keys: -------------------------------------------------------------------------------- 1 | ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDW3NDkkJ6P+xWQJxikh6uT+M0havQHM0u0GG7JfyhxSrw2ZUaDOye/Qx5vtV722OJ8RZM+Pqx+R2ykqFu0uGp64dn4Zdgn1tCzcjHBZzT2AD4bu0Z6NnIxEx4I/BR/bIELwbQ0XEgzowO17sDhkROkG4MxQ0Bq6AXv/+3HXJlQ+DgU8ntzQLzqxBNOo324jMj5BCM4ohOR/MaMwjdVLwtGmXKf7oMwmvKJcmvSNY3XzszOmKJY92JCrOOvWAPfZJo51p5Pvt02Xb88alWfcdcrNoqh7+rxmLwe2fYAw195NyKD3mBB66Q/N2XolYAoKvYhSKE0cWwfb196l/y1zXDZsr43104gMY1njuA8ii7Uib28iIKsZI1MkFanXj/H1JZgMxUgLy6337UxvJU+J3lsM/SpdOmrLmS/dj0c6o1SYKj5KQdlESSyEG+2/uQVXgD/9lrXctBtmLe+hM6mOwPlA8JZ0/WM7ExAcidS40L0Ikos5U6o7NbHMc8ymMQwq+/FRg14FOYDssJOaF/ll8krWHir4RvghwONA2QFh4tsPhiWqS43l4H2HGHbqYuMUXjJ561MmLfLfbe8efuUldd61o1a3raWePpdtakVx7JsqYrfxB5m3YzhYQYipHfVp+TvvHDD/L7NYx5btsLj2eRRjRzHTsyEUo9vDEaVM7NQgQ== inifc@The-toxic-avenger-II.local 2 | ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCdzYCUgsh5WCZzASTan1+H72eFmtpGEd3qlLSkpm6fWGGO5N7gPmMnmt5XGhrXj3ce5kWRD2KEsdHob9QBbcdlR0zSy5OU7cRfzzZYeLjb0M+aWwLln6fI50moBIUalQRH729mgiFLADMi1doDj+6xUg1Z6L98qVEAi2QQC67qqnLgmeixdRi4MDX/2gM5W4ewmNKx4atbJbyf9GbJCyuukUCOcGzYOlSWWcY9CK/Bd7euL1zShUiL81bNKSI+TVKKJGgHwa6VNg7+IeEypPFHl01TgaWMoRutAd2YDF4c31Njfx+R5QuZWQlijet+xOB1oABHymLwGaun7ZF3JYBJaWkjsTLL8J6hfPho+4SCBTHNDM4UL/egoqx1D3VVTjzPTnTTIR6MR/m9yfA5cgN8RG7eyaLoEh8JLWwrg6qH/OklinQ5JP+fsIAtXGauj4gD8JwJjjvPrzHDEZYPKH4BJWJZY3Ga2c1vJKP0t5cu9cG4T/XvL6D/2Oac7IR/9n8ahG0Nd1jKHIrLJ6OVaGvyWkoaTfzL/w7ogBqd05yQipSKVfJ6zsmN7OT4XB5tFIix4TPimeH4f91BIM4f1F/8Vd6mhZtMdABfeUKCqZIOqxFrFD/fwmTDfMZ+WewGIcSxQ0vlZHlEZJUfu6drlBGJl2FuJhEzkd0L/+wTrkxkjw== inifc@warhead 3 | -------------------------------------------------------------------------------- /src/test/resources/hudson/plugins/sshslaves/agents/ssh-agent-rsa256/ssh/rsa-256-key.pub: -------------------------------------------------------------------------------- 1 | ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCdzYCUgsh5WCZzASTan1+H72eFmtpGEd3qlLSkpm6fWGGO5N7gPmMnmt5XGhrXj3ce5kWRD2KEsdHob9QBbcdlR0zSy5OU7cRfzzZYeLjb0M+aWwLln6fI50moBIUalQRH729mgiFLADMi1doDj+6xUg1Z6L98qVEAi2QQC67qqnLgmeixdRi4MDX/2gM5W4ewmNKx4atbJbyf9GbJCyuukUCOcGzYOlSWWcY9CK/Bd7euL1zShUiL81bNKSI+TVKKJGgHwa6VNg7+IeEypPFHl01TgaWMoRutAd2YDF4c31Njfx+R5QuZWQlijet+xOB1oABHymLwGaun7ZF3JYBJaWkjsTLL8J6hfPho+4SCBTHNDM4UL/egoqx1D3VVTjzPTnTTIR6MR/m9yfA5cgN8RG7eyaLoEh8JLWwrg6qH/OklinQ5JP+fsIAtXGauj4gD8JwJjjvPrzHDEZYPKH4BJWJZY3Ga2c1vJKP0t5cu9cG4T/XvL6D/2Oac7IR/9n8ahG0Nd1jKHIrLJ6OVaGvyWkoaTfzL/w7ogBqd05yQipSKVfJ6zsmN7OT4XB5tFIix4TPimeH4f91BIM4f1F/8Vd6mhZtMdABfeUKCqZIOqxFrFD/fwmTDfMZ+WewGIcSxQ0vlZHlEZJUfu6drlBGJl2FuJhEzkd0L/+wTrkxkjw== inifc@warhead 2 | -------------------------------------------------------------------------------- /src/test/resources/hudson/plugins/sshslaves/agents/ssh-agent-rsa256/ssh/sshd_config: -------------------------------------------------------------------------------- 1 | ChallengeResponseAuthentication no 2 | LogLevel DEBUG1 3 | UsePAM yes 4 | X11Forwarding yes 5 | PrintMotd yes 6 | AcceptEnv LANG LC_* 7 | PermitRootLogin no 8 | PasswordAuthentication yes 9 | GSSAPIAuthentication yes 10 | GSSAPICleanupCredentials yes 11 | ClientAliveInterval 600 12 | ClientAliveCountMax 4 13 | Subsystem sftp /usr/lib/openssh/sftp-server 14 | PubkeyAcceptedKeyTypes rsa-sha2-256 15 | HostbasedAcceptedKeyTypes rsa-sha2-256 16 | HostKeyAlgorithms rsa-sha2-256 17 | -------------------------------------------------------------------------------- /src/test/resources/hudson/plugins/sshslaves/agents/ssh-agent-rsa512/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ghcr.io/jenkinsci/ssh-agents-plugin:baseb2fb086@sha256:2bc6d82ca2b406b0a2b509fd2308c38ae51de9f3e61cb1288e3421f6116bb27c 2 | USER root 3 | 4 | COPY ssh /home/jenkins/.ssh 5 | RUN chown -R jenkins:jenkins /home/jenkins/ \ 6 | && chmod 700 /home/jenkins/.ssh \ 7 | && chmod 600 /home/jenkins/.ssh/* 8 | COPY ssh /root/.ssh 9 | RUN chown -R root:root /root/ \ 10 | && chmod 700 /root/.ssh \ 11 | && chmod 600 /root/.ssh/* 12 | COPY ssh/sshd_config /etc/ssh/sshd_config 13 | -------------------------------------------------------------------------------- /src/test/resources/hudson/plugins/sshslaves/agents/ssh-agent-rsa512/ssh/authorized_keys: -------------------------------------------------------------------------------- 1 | ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCyEAy6D/jHzFdnm7Zq3WgomqoU3HbZbvA2zNCSr+qHVTeN80c7u+KEt9On9zlUjofqZFHhdvl6nlLlgHzbnwzQWb429RSLcRNkDsrUycy5E0uzmJwTERisVIaaE2iSEDpgnMgvScj/BlFbEB+/veVNpjrlbr46sAkbobUj3+p2RXRbanYiDFakUK2zZ/KbaAeXLqCOJ6NYE2JZSaWeEscE22kXVet/OvhRWh7SCLqdaN/b0ZOiHm8CmxEjkTHS4Jd2//a6TduV8xDh0BXMgjivMjNknTgHD+7n50ompIVKMvVwQlFhOsMmw40VC3crg/uW8YtsyoS4SNhU/bDXlb+X3aNgJoD6xtGMKRLlIm+v9bqC8fuAIYRQvcSbmdE4S7g4DEtdRyyuEqXvU4U8lv9LcuRvbbTZRIcrd2eXPGYFWz75ditvU3EhW/faRUURnPqsMwAlQUhd1bsCOqNIULBJQ8I9OVRs5o6UsHfLjfpB4y+1Jvm67lDBju5egtQGSt5Io4gpSI5GmNrKTv8sVBaFEOKDgBKfD5USamGqcO0bSwGi0QySK3pfIO0N6vBL45GyWtg6pQrePpwouQRuiGqa5Q7rwGAzcCg8Z2oDZTaLTtkwZ+4tPK4MqCcn9qnCU5ur2/IaV3h2acqw+jwxSilRTs8bbfDplnwp9ADFricvEw== inifc@The-toxic-avenger-II.local 2 | ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCeVpuoshw+u+jPPsKjAaE/fxP+Q8rV6TRQLO2iIFNGlDcDFbb/IiIVk9H4Xfqbqk9PzqZCCtwvTTbxKVagQFIr69yEIdaJ0OmSqycdYP4VXT2cYdR9aX0Z6/g7DBy818VBdYGlNGDVtXmtuus34oA9RZRMvBGe/FJb92g+cIT99QHOgxVs23zOHSosr+eogdXNXpWsSp2jstV8itnffDbrfKaYekcF1xLz7zLD2elIm71DlOrUEtWeRjsWTckLT6+pZg79jiE8HVF2YCYBRcnfeOsHsPFOew2C2nEQeS15rbRy7puo/PdQSa7Qz4V7ZnKT/LjfReAudxMGLlUCuKlC5GgboabveZZopNmxNWB++l+JRacAdHBaQk8ZF0XQ92rxAr6exmkbkgyAg+maJ5UCqh3asrshSB7NXVnPKTFm6qZCQpI54ZPlGXtnURLwLXNqRb/Gvlb41C68xr4QvmbACgdo7VD4zzK+ohz4WJyXM6pcBYWtwTFb0NHAUSneN9d029FP5/zgoLrWfvD+m3l9Ot+XyPniH/LL4BhWb3MAq4O9MzEKd9AUnsRH1n1NF94YwMnxqAMTnGFe8D0w1R5O4CCFhmEHybTabTyadKLyQViHUfH+Afun0mfqKJtVrqpOedYy21rEEiPRLQ3yUbiqQ/HfhPgoj0Jr3+uiOW40+w== inifc@warhead 3 | -------------------------------------------------------------------------------- /src/test/resources/hudson/plugins/sshslaves/agents/ssh-agent-rsa512/ssh/rsa-512-key.pub: -------------------------------------------------------------------------------- 1 | ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCeVpuoshw+u+jPPsKjAaE/fxP+Q8rV6TRQLO2iIFNGlDcDFbb/IiIVk9H4Xfqbqk9PzqZCCtwvTTbxKVagQFIr69yEIdaJ0OmSqycdYP4VXT2cYdR9aX0Z6/g7DBy818VBdYGlNGDVtXmtuus34oA9RZRMvBGe/FJb92g+cIT99QHOgxVs23zOHSosr+eogdXNXpWsSp2jstV8itnffDbrfKaYekcF1xLz7zLD2elIm71DlOrUEtWeRjsWTckLT6+pZg79jiE8HVF2YCYBRcnfeOsHsPFOew2C2nEQeS15rbRy7puo/PdQSa7Qz4V7ZnKT/LjfReAudxMGLlUCuKlC5GgboabveZZopNmxNWB++l+JRacAdHBaQk8ZF0XQ92rxAr6exmkbkgyAg+maJ5UCqh3asrshSB7NXVnPKTFm6qZCQpI54ZPlGXtnURLwLXNqRb/Gvlb41C68xr4QvmbACgdo7VD4zzK+ohz4WJyXM6pcBYWtwTFb0NHAUSneN9d029FP5/zgoLrWfvD+m3l9Ot+XyPniH/LL4BhWb3MAq4O9MzEKd9AUnsRH1n1NF94YwMnxqAMTnGFe8D0w1R5O4CCFhmEHybTabTyadKLyQViHUfH+Afun0mfqKJtVrqpOedYy21rEEiPRLQ3yUbiqQ/HfhPgoj0Jr3+uiOW40+w== inifc@warhead 2 | -------------------------------------------------------------------------------- /src/test/resources/hudson/plugins/sshslaves/agents/ssh-agent-rsa512/ssh/sshd_config: -------------------------------------------------------------------------------- 1 | ChallengeResponseAuthentication no 2 | LogLevel DEBUG1 3 | UsePAM yes 4 | X11Forwarding yes 5 | PrintMotd yes 6 | AcceptEnv LANG LC_* 7 | PermitRootLogin no 8 | PasswordAuthentication yes 9 | GSSAPIAuthentication yes 10 | GSSAPICleanupCredentials yes 11 | ClientAliveInterval 600 12 | ClientAliveCountMax 4 13 | Subsystem sftp /usr/lib/openssh/sftp-server 14 | PubkeyAcceptedKeyTypes rsa-sha2-512 15 | HostbasedAcceptedKeyTypes rsa-sha2-512 16 | HostKeyAlgorithms rsa-sha2-512 17 | -------------------------------------------------------------------------------- /src/test/resources/hudson/plugins/sshslaves/agents/ssh-agent-ubuntu-20/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ubuntu:20.04 2 | USER root 3 | 4 | ENV TZ=Etc/UTC 5 | RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone 6 | RUN DEBIAN_FRONTEND="noninteractive" apt-get update -y -qq \ 7 | && apt-get install -y -qq \ 8 | --no-install-recommends \ 9 | openssh-server \ 10 | software-properties-common \ 11 | git \ 12 | make 13 | 14 | RUN add-apt-repository ppa:openjdk-r/ppa -y \ 15 | && apt-get update -y -qq \ 16 | && apt-get install -y -qq \ 17 | openjdk-17-jdk \ 18 | && rm -rf /var/lib/apt/lists/* 19 | 20 | RUN useradd --password password --shell /bin/bash jenkins \ 21 | && mkdir /home/jenkins \ 22 | && chown -R jenkins:jenkins /home/jenkins 23 | 24 | COPY ssh /home/jenkins/.ssh 25 | RUN chown -R jenkins:jenkins /home/jenkins/ \ 26 | && chmod 700 /home/jenkins/.ssh \ 27 | && chmod 600 /home/jenkins/.ssh/* 28 | COPY ssh /root/.ssh 29 | RUN chown -R root:root /root/ \ 30 | && chmod 700 /root/.ssh \ 31 | && chmod 600 /root/.ssh/* 32 | RUN ssh-keygen -A 33 | COPY ssh/sshd_config /etc/ssh/sshd_config 34 | 35 | RUN mkdir -p /var/run/sshd 36 | 37 | RUN echo "password\npassword" | passwd root \ 38 | && echo "password\npassword" | passwd jenkins 39 | 40 | EXPOSE 22 41 | ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/lib/jvm/java-17-openjdk-amd64/jre/bin:/usr/lib/jvm/java-17-openjdk-amd64/bin 42 | RUN echo "PATH=${PATH}" >> /etc/environment 43 | ENTRYPOINT [] 44 | CMD [ "/bin/sh", "-c", "/usr/sbin/sshd -e -D -p 22"] 45 | -------------------------------------------------------------------------------- /src/test/resources/hudson/plugins/sshslaves/agents/ssh-agent-ubuntu-20/ssh/authorized_keys: -------------------------------------------------------------------------------- 1 | ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDPFhRz6+cukr0bcVLvzQI4ATQhuU1n5/34lGhrxF1v5SDSbGPRj65TAKMJCPjZBj+ydQi5t9xUk2RLfWXNiY3BqOcSNzXEfGk9Ubwm0wf0agXFwydWgmRPimRF6IYWPDUn35ustI5oE1YYS3Uc03nndOL/iqnoDd3TQAjX6CFjc8hg5oiMMZ6sSlmyKulJch+4RS3IfwNxXXzklivQ5UPL6QyT1hgl5/cpnVhu2ymtYEdH/sodw3YpxtD0CRlFTVdvxvuba0Z17T6AheINgXiRoShy9zFMcCjOU+Cbe57n77hLmroKKfMRVeVa7R1ceKXUq8tmN2rqobjpfALHWT34bdEBJoXGTO4wCrFlOzY2Nz4ePg1dv6Cojpo1IB9XM9hMubx1Qa9JrnL+Uc8qQmVChfs5Mv+xzQ4Q3h/BtjxDdNKvTYA3A6x53cirM2Pw+m5XYYEbB7c0bXvHcKW9cewI61PtRRXOz6w7LPvon+4+V/dGIawX1Ji8by6Lib13JEYveEHzu9GZSv20tEiT2vpPn59vXsGcxstOXAupCC1Gc5IMhIfXJTemcS+ZugOHJisZzvwwcKgwK4cXs9sWkaIL+sp2K6smKC+SzKXFQTGtOGYhEdn68ImNVN2El0nvphvl/fmVj9m2zwqKXT5M9dVYOs0jRwq/Vbh04JOD6lpLAw== inifc@warhead 2 | -------------------------------------------------------------------------------- /src/test/resources/hudson/plugins/sshslaves/agents/ssh-agent-ubuntu-20/ssh/rsa-key: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | 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 51 | -----END RSA PRIVATE KEY----- 52 | -------------------------------------------------------------------------------- /src/test/resources/hudson/plugins/sshslaves/agents/ssh-agent-ubuntu-20/ssh/rsa-key.pub: -------------------------------------------------------------------------------- 1 | ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDPFhRz6+cukr0bcVLvzQI4ATQhuU1n5/34lGhrxF1v5SDSbGPRj65TAKMJCPjZBj+ydQi5t9xUk2RLfWXNiY3BqOcSNzXEfGk9Ubwm0wf0agXFwydWgmRPimRF6IYWPDUn35ustI5oE1YYS3Uc03nndOL/iqnoDd3TQAjX6CFjc8hg5oiMMZ6sSlmyKulJch+4RS3IfwNxXXzklivQ5UPL6QyT1hgl5/cpnVhu2ymtYEdH/sodw3YpxtD0CRlFTVdvxvuba0Z17T6AheINgXiRoShy9zFMcCjOU+Cbe57n77hLmroKKfMRVeVa7R1ceKXUq8tmN2rqobjpfALHWT34bdEBJoXGTO4wCrFlOzY2Nz4ePg1dv6Cojpo1IB9XM9hMubx1Qa9JrnL+Uc8qQmVChfs5Mv+xzQ4Q3h/BtjxDdNKvTYA3A6x53cirM2Pw+m5XYYEbB7c0bXvHcKW9cewI61PtRRXOz6w7LPvon+4+V/dGIawX1Ji8by6Lib13JEYveEHzu9GZSv20tEiT2vpPn59vXsGcxstOXAupCC1Gc5IMhIfXJTemcS+ZugOHJisZzvwwcKgwK4cXs9sWkaIL+sp2K6smKC+SzKXFQTGtOGYhEdn68ImNVN2El0nvphvl/fmVj9m2zwqKXT5M9dVYOs0jRwq/Vbh04JOD6lpLAw== inifc@warhead 2 | -------------------------------------------------------------------------------- /src/test/resources/hudson/plugins/sshslaves/agents/ssh-agent-ubuntu-20/ssh/sshd_config: -------------------------------------------------------------------------------- 1 | ChallengeResponseAuthentication no 2 | LogLevel DEBUG1 3 | UsePAM yes 4 | X11Forwarding yes 5 | PrintMotd yes 6 | AcceptEnv LANG LC_* 7 | PermitRootLogin no 8 | PasswordAuthentication yes 9 | GSSAPIAuthentication yes 10 | GSSAPICleanupCredentials yes 11 | ClientAliveInterval 600 12 | ClientAliveCountMax 4 13 | Subsystem sftp /usr/lib/openssh/sftp-server 14 | 15 | #PubkeyAcceptedKeyTypes ssh-rsa 16 | #HostbasedAcceptedKeyTypes ssh-rsa 17 | #HostKeyAlgorithms ssh-rsa 18 | -------------------------------------------------------------------------------- /src/test/resources/hudson/plugins/sshslaves/agents/ssh-agent-ubuntu-22/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ubuntu:22.04 2 | USER root 3 | 4 | ENV TZ=Etc/UTC 5 | RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone 6 | RUN DEBIAN_FRONTEND="noninteractive" apt-get update -y -qq \ 7 | && apt-get install -y -qq \ 8 | --no-install-recommends \ 9 | openssh-server \ 10 | software-properties-common \ 11 | git \ 12 | make 13 | 14 | RUN add-apt-repository ppa:openjdk-r/ppa -y \ 15 | && apt-get update -y -qq \ 16 | && apt-get install -y -qq \ 17 | openjdk-17-jdk \ 18 | && rm -rf /var/lib/apt/lists/* 19 | 20 | RUN useradd --password password --shell /bin/bash jenkins \ 21 | && mkdir /home/jenkins \ 22 | && chown -R jenkins:jenkins /home/jenkins 23 | 24 | COPY ssh /home/jenkins/.ssh 25 | RUN chown -R jenkins:jenkins /home/jenkins/ \ 26 | && chmod 700 /home/jenkins/.ssh \ 27 | && chmod 600 /home/jenkins/.ssh/* 28 | COPY ssh /root/.ssh 29 | RUN chown -R root:root /root/ \ 30 | && chmod 700 /root/.ssh \ 31 | && chmod 600 /root/.ssh/* 32 | RUN ssh-keygen -A 33 | COPY ssh/sshd_config /etc/ssh/sshd_config 34 | 35 | RUN mkdir -p /var/run/sshd 36 | 37 | RUN echo "password\npassword" | passwd root \ 38 | && echo "password\npassword" | passwd jenkins 39 | 40 | EXPOSE 22 41 | ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/lib/jvm/java-17-openjdk-amd64/jre/bin:/usr/lib/jvm/java-17-openjdk-amd64/bin 42 | RUN echo "PATH=${PATH}" >> /etc/environment 43 | ENTRYPOINT [] 44 | CMD [ "/bin/sh", "-c", "/usr/sbin/sshd -e -D -p 22"] 45 | -------------------------------------------------------------------------------- /src/test/resources/hudson/plugins/sshslaves/agents/ssh-agent-ubuntu-22/ssh/authorized_keys: -------------------------------------------------------------------------------- 1 | ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDPFhRz6+cukr0bcVLvzQI4ATQhuU1n5/34lGhrxF1v5SDSbGPRj65TAKMJCPjZBj+ydQi5t9xUk2RLfWXNiY3BqOcSNzXEfGk9Ubwm0wf0agXFwydWgmRPimRF6IYWPDUn35ustI5oE1YYS3Uc03nndOL/iqnoDd3TQAjX6CFjc8hg5oiMMZ6sSlmyKulJch+4RS3IfwNxXXzklivQ5UPL6QyT1hgl5/cpnVhu2ymtYEdH/sodw3YpxtD0CRlFTVdvxvuba0Z17T6AheINgXiRoShy9zFMcCjOU+Cbe57n77hLmroKKfMRVeVa7R1ceKXUq8tmN2rqobjpfALHWT34bdEBJoXGTO4wCrFlOzY2Nz4ePg1dv6Cojpo1IB9XM9hMubx1Qa9JrnL+Uc8qQmVChfs5Mv+xzQ4Q3h/BtjxDdNKvTYA3A6x53cirM2Pw+m5XYYEbB7c0bXvHcKW9cewI61PtRRXOz6w7LPvon+4+V/dGIawX1Ji8by6Lib13JEYveEHzu9GZSv20tEiT2vpPn59vXsGcxstOXAupCC1Gc5IMhIfXJTemcS+ZugOHJisZzvwwcKgwK4cXs9sWkaIL+sp2K6smKC+SzKXFQTGtOGYhEdn68ImNVN2El0nvphvl/fmVj9m2zwqKXT5M9dVYOs0jRwq/Vbh04JOD6lpLAw== inifc@warhead 2 | -------------------------------------------------------------------------------- /src/test/resources/hudson/plugins/sshslaves/agents/ssh-agent-ubuntu-22/ssh/rsa-key: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | 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 51 | -----END RSA PRIVATE KEY----- 52 | -------------------------------------------------------------------------------- /src/test/resources/hudson/plugins/sshslaves/agents/ssh-agent-ubuntu-22/ssh/rsa-key.pub: -------------------------------------------------------------------------------- 1 | ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDPFhRz6+cukr0bcVLvzQI4ATQhuU1n5/34lGhrxF1v5SDSbGPRj65TAKMJCPjZBj+ydQi5t9xUk2RLfWXNiY3BqOcSNzXEfGk9Ubwm0wf0agXFwydWgmRPimRF6IYWPDUn35ustI5oE1YYS3Uc03nndOL/iqnoDd3TQAjX6CFjc8hg5oiMMZ6sSlmyKulJch+4RS3IfwNxXXzklivQ5UPL6QyT1hgl5/cpnVhu2ymtYEdH/sodw3YpxtD0CRlFTVdvxvuba0Z17T6AheINgXiRoShy9zFMcCjOU+Cbe57n77hLmroKKfMRVeVa7R1ceKXUq8tmN2rqobjpfALHWT34bdEBJoXGTO4wCrFlOzY2Nz4ePg1dv6Cojpo1IB9XM9hMubx1Qa9JrnL+Uc8qQmVChfs5Mv+xzQ4Q3h/BtjxDdNKvTYA3A6x53cirM2Pw+m5XYYEbB7c0bXvHcKW9cewI61PtRRXOz6w7LPvon+4+V/dGIawX1Ji8by6Lib13JEYveEHzu9GZSv20tEiT2vpPn59vXsGcxstOXAupCC1Gc5IMhIfXJTemcS+ZugOHJisZzvwwcKgwK4cXs9sWkaIL+sp2K6smKC+SzKXFQTGtOGYhEdn68ImNVN2El0nvphvl/fmVj9m2zwqKXT5M9dVYOs0jRwq/Vbh04JOD6lpLAw== inifc@warhead 2 | -------------------------------------------------------------------------------- /src/test/resources/hudson/plugins/sshslaves/agents/ssh-agent-ubuntu-22/ssh/sshd_config: -------------------------------------------------------------------------------- 1 | ChallengeResponseAuthentication no 2 | LogLevel DEBUG1 3 | UsePAM yes 4 | X11Forwarding yes 5 | PrintMotd yes 6 | AcceptEnv LANG LC_* 7 | PermitRootLogin no 8 | PasswordAuthentication yes 9 | GSSAPIAuthentication yes 10 | GSSAPICleanupCredentials yes 11 | ClientAliveInterval 600 12 | ClientAliveCountMax 4 13 | Subsystem sftp /usr/lib/openssh/sftp-server 14 | 15 | #PubkeyAcceptedKeyTypes ssh-rsa 16 | #HostbasedAcceptedKeyTypes ssh-rsa 17 | #HostKeyAlgorithms ssh-rsa 18 | -------------------------------------------------------------------------------- /src/test/resources/hudson/plugins/sshslaves/agents/ssh-agent-ubuntu-24/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ubuntu:24.04 2 | USER root 3 | 4 | ENV TZ=Etc/UTC 5 | RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone 6 | RUN DEBIAN_FRONTEND="noninteractive" apt-get update -y -qq \ 7 | && apt-get install -y -qq \ 8 | --no-install-recommends \ 9 | openssh-server \ 10 | software-properties-common \ 11 | git \ 12 | make 13 | 14 | RUN add-apt-repository ppa:openjdk-r/ppa -y \ 15 | && apt-get update -y -qq \ 16 | && apt-get install -y -qq \ 17 | openjdk-17-jdk \ 18 | && rm -rf /var/lib/apt/lists/* 19 | 20 | RUN useradd --password password --shell /bin/bash jenkins \ 21 | && mkdir /home/jenkins \ 22 | && chown -R jenkins:jenkins /home/jenkins 23 | 24 | COPY ssh /home/jenkins/.ssh 25 | RUN chown -R jenkins:jenkins /home/jenkins/ \ 26 | && chmod 700 /home/jenkins/.ssh \ 27 | && chmod 600 /home/jenkins/.ssh/* 28 | COPY ssh /root/.ssh 29 | RUN chown -R root:root /root/ \ 30 | && chmod 700 /root/.ssh \ 31 | && chmod 600 /root/.ssh/* 32 | RUN ssh-keygen -A 33 | COPY ssh/sshd_config /etc/ssh/sshd_config 34 | 35 | RUN mkdir -p /var/run/sshd 36 | 37 | RUN echo "password\npassword" | passwd root \ 38 | && echo "password\npassword" | passwd jenkins 39 | 40 | EXPOSE 22 41 | ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/lib/jvm/java-17-openjdk-amd64/jre/bin:/usr/lib/jvm/java-17-openjdk-amd64/bin 42 | RUN echo "PATH=${PATH}" >> /etc/environment 43 | ENTRYPOINT [] 44 | CMD [ "/bin/sh", "-c", "/usr/sbin/sshd -e -D -p 22"] 45 | -------------------------------------------------------------------------------- /src/test/resources/hudson/plugins/sshslaves/agents/ssh-agent-ubuntu-24/ssh/authorized_keys: -------------------------------------------------------------------------------- 1 | ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDPFhRz6+cukr0bcVLvzQI4ATQhuU1n5/34lGhrxF1v5SDSbGPRj65TAKMJCPjZBj+ydQi5t9xUk2RLfWXNiY3BqOcSNzXEfGk9Ubwm0wf0agXFwydWgmRPimRF6IYWPDUn35ustI5oE1YYS3Uc03nndOL/iqnoDd3TQAjX6CFjc8hg5oiMMZ6sSlmyKulJch+4RS3IfwNxXXzklivQ5UPL6QyT1hgl5/cpnVhu2ymtYEdH/sodw3YpxtD0CRlFTVdvxvuba0Z17T6AheINgXiRoShy9zFMcCjOU+Cbe57n77hLmroKKfMRVeVa7R1ceKXUq8tmN2rqobjpfALHWT34bdEBJoXGTO4wCrFlOzY2Nz4ePg1dv6Cojpo1IB9XM9hMubx1Qa9JrnL+Uc8qQmVChfs5Mv+xzQ4Q3h/BtjxDdNKvTYA3A6x53cirM2Pw+m5XYYEbB7c0bXvHcKW9cewI61PtRRXOz6w7LPvon+4+V/dGIawX1Ji8by6Lib13JEYveEHzu9GZSv20tEiT2vpPn59vXsGcxstOXAupCC1Gc5IMhIfXJTemcS+ZugOHJisZzvwwcKgwK4cXs9sWkaIL+sp2K6smKC+SzKXFQTGtOGYhEdn68ImNVN2El0nvphvl/fmVj9m2zwqKXT5M9dVYOs0jRwq/Vbh04JOD6lpLAw== inifc@warhead 2 | -------------------------------------------------------------------------------- /src/test/resources/hudson/plugins/sshslaves/agents/ssh-agent-ubuntu-24/ssh/rsa-key: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | 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 51 | -----END RSA PRIVATE KEY----- 52 | -------------------------------------------------------------------------------- /src/test/resources/hudson/plugins/sshslaves/agents/ssh-agent-ubuntu-24/ssh/rsa-key.pub: -------------------------------------------------------------------------------- 1 | ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDPFhRz6+cukr0bcVLvzQI4ATQhuU1n5/34lGhrxF1v5SDSbGPRj65TAKMJCPjZBj+ydQi5t9xUk2RLfWXNiY3BqOcSNzXEfGk9Ubwm0wf0agXFwydWgmRPimRF6IYWPDUn35ustI5oE1YYS3Uc03nndOL/iqnoDd3TQAjX6CFjc8hg5oiMMZ6sSlmyKulJch+4RS3IfwNxXXzklivQ5UPL6QyT1hgl5/cpnVhu2ymtYEdH/sodw3YpxtD0CRlFTVdvxvuba0Z17T6AheINgXiRoShy9zFMcCjOU+Cbe57n77hLmroKKfMRVeVa7R1ceKXUq8tmN2rqobjpfALHWT34bdEBJoXGTO4wCrFlOzY2Nz4ePg1dv6Cojpo1IB9XM9hMubx1Qa9JrnL+Uc8qQmVChfs5Mv+xzQ4Q3h/BtjxDdNKvTYA3A6x53cirM2Pw+m5XYYEbB7c0bXvHcKW9cewI61PtRRXOz6w7LPvon+4+V/dGIawX1Ji8by6Lib13JEYveEHzu9GZSv20tEiT2vpPn59vXsGcxstOXAupCC1Gc5IMhIfXJTemcS+ZugOHJisZzvwwcKgwK4cXs9sWkaIL+sp2K6smKC+SzKXFQTGtOGYhEdn68ImNVN2El0nvphvl/fmVj9m2zwqKXT5M9dVYOs0jRwq/Vbh04JOD6lpLAw== inifc@warhead 2 | -------------------------------------------------------------------------------- /src/test/resources/hudson/plugins/sshslaves/agents/ssh-agent-ubuntu-24/ssh/sshd_config: -------------------------------------------------------------------------------- 1 | ChallengeResponseAuthentication no 2 | LogLevel DEBUG1 3 | UsePAM yes 4 | X11Forwarding yes 5 | PrintMotd yes 6 | AcceptEnv LANG LC_* 7 | PermitRootLogin no 8 | PasswordAuthentication yes 9 | GSSAPIAuthentication yes 10 | GSSAPICleanupCredentials yes 11 | ClientAliveInterval 600 12 | ClientAliveCountMax 4 13 | Subsystem sftp /usr/lib/openssh/sftp-server 14 | 15 | #PubkeyAcceptedKeyTypes ssh-rsa 16 | #HostbasedAcceptedKeyTypes ssh-rsa 17 | #HostKeyAlgorithms ssh-rsa 18 | -------------------------------------------------------------------------------- /src/test/resources/readInputStreamIntoByteArrayTestFile.txt: -------------------------------------------------------------------------------- 1 | Don't change me or add newlines! --------------------------------------------------------------------------------