Drone plugin for executing remote ssh commands
Clone or download

README.md

drone-ssh

GitHub tag GoDoc Build Status codecov Go Report Card Docker Pulls

Drone plugin to execute commands on a remote host through SSH. For the usage information and a listing of the available options please take a look at the docs.

Note: Please update your image config path to appleboy/drone-ssh for drone. plugins/ssh is no longer maintained.

demo

Build

Build the binary with the following commands:

go build
go test

Docker

Build the docker image with the following commands:

CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -a -tags netgo
docker build -t appleboy/drone-ssh .

Please note incorrectly building the image for the correct x64 linux and with GCO disabled will result in an error when running the Docker image:

docker: Error response from daemon: Container command
'/bin/drone-ssh' not found or does not exist..

Usage

Execute from the working directory:

docker run --rm \
  -e PLUGIN_HOST=foo.com \
  -e PLUGIN_USERNAME=root \
  -e PLUGIN_KEY="$(cat ${HOME}/.ssh/id_rsa)" \
  -e PLUGIN_SCRIPT=whoami \
  -v $(pwd):$(pwd) \
  -w $(pwd) \
  appleboy/drone-ssh

Mount key from file path

Please make sure that enable the trusted mode in project setting.

trusted mode

Mount private key in volumes setting of .drone.yml config

pipeline:
  ssh:
    image: appleboy/drone-ssh
    host: xxxxx.com
    username: deploy
+   volumes:
+     - /root/drone_rsa:/root/ssh/drone_rsa
    key_path: /root/ssh/drone_rsa
    script:
      - echo "test ssh"

See the detail of issue comment.