From 12a5243afc7df361ee54e5e9fef3243e02ae235d Mon Sep 17 00:00:00 2001 From: Bo-Yi Wu Date: Wed, 15 May 2019 06:47:53 +0800 Subject: [PATCH] feat: support private key --- .github/main.workflow | 15 +++++++- README.md | 79 +++++++++++++++++++++++++++++++++++++------ 2 files changed, 83 insertions(+), 11 deletions(-) diff --git a/.github/main.workflow b/.github/main.workflow index 51ac436..31c1d5c 100644 --- a/.github/main.workflow +++ b/.github/main.workflow @@ -1,7 +1,8 @@ -workflow "Copy File Via SSH" { +workflow "Remote ssh commands" { on = "push" resolves = [ "Executing remote ssh commands", + "Support Private Key", ] } @@ -16,3 +17,15 @@ action "Executing remote ssh commands" { "--script", "whoami", ] } + +action "Support Private Key" { + uses = "appleboy/ssh-action@master" + secrets = [ + "HOST", + "KEY", + ] + args = [ + "--user", "actions", + "--script", "ls -al", + ] +} diff --git a/README.md b/README.md index 09a287f..17dc079 100644 --- a/README.md +++ b/README.md @@ -9,19 +9,16 @@ Executing remote ssh commands. ``` -action "Copy multiple file" { - uses = "appleboy/scp-action@master" - env = { - HOST = "example.com" - USERNAME = "foo" - PASSWORD = "bar" - PORT = "22" - SOURCE = "tests/a.txt,tests/b.txt" - TARGET = "/home/foo/test" - } +action "Executing remote ssh commands" { + uses = "appleboy/ssh-action@master" secrets = [ + "HOST", "PASSWORD", ] + args = [ + "--user", "actions", + "--script", "whoami", + ] } ``` @@ -33,3 +30,65 @@ action "Copy multiple file" { * PASSWORD - ssh server password * KEY - ssh server private key * SCRIPT - execute the scripts + +### Example + +Executing remote ssh commands. + +``` +action "Executing remote ssh commands" { + uses = "appleboy/ssh-action@master" + secrets = [ + "PASSWORD", + ] + args = [ + "--host", "foo.com" + "--user", "bar", + "--script", "whoami", + ] +} +``` + +Using private key + +``` +action "Support Private Key" { + uses = "appleboy/ssh-action@master" + secrets = [ + "HOST", + "KEY", + ] + args = [ + "--user", "actions", + "--script", "ls -al", + ] +} +``` + +see the detail of `drone-ssh` command + +``` + --ssh-key value private ssh key [$PLUGIN_SSH_KEY, $PLUGIN_KEY, $SSH_KEY, $KEY] + --key-path value, -i value ssh private key path [$PLUGIN_KEY_PATH, $SSH_KEY_PATH, $PATH] + --username value, --user value, -u value connect as user (default: "root") [$PLUGIN_USERNAME, $PLUGIN_USER, $SSH_USERNAME, $USERNAME] + --password value, -P value user password [$PLUGIN_PASSWORD, $SSH_PASSWORD, $PASSWORD] + --host value, -H value connect to host [$PLUGIN_HOST, $SSH_HOST, $HOST] + --port value, -p value connect to port (default: 22) [$PLUGIN_PORT, $SSH_PORT, $PORT] + --sync sync mode [$PLUGIN_SYNC, $SYNC] + --timeout value, -t value connection timeout (default: 0s) [$PLUGIN_TIMEOUT, $SSH_TIMEOUT, $TIMEOUT] + --command.timeout value, -T value command timeout (default: 1m0s) [$PLUGIN_COMMAND_TIMEOUT, $SSH_COMMAND_TIMEOUT, $COMMAND_TIMEOUT] + --script value, -s value execute commands [$PLUGIN_SCRIPT, $SSH_SCRIPT, $SCRIPT] + --script.stop stop script after first failure [$PLUGIN_SCRIPT_STOP, $STOP] + --proxy.ssh-key value private ssh key of proxy [$PLUGIN_PROXY_SSH_KEY, $PLUGIN_PROXY_KEY, $PROXY_SSH_KEY] + --proxy.key-path value ssh private key path of proxy [$PLUGIN_PROXY_KEY_PATH, $PROXY_SSH_KEY_PATH] + --proxy.username value connect as user of proxy (default: "root") [$PLUGIN_PROXY_USERNAME, $PLUGIN_PROXY_USER, $PROXY_SSH_USERNAME] + --proxy.password value user password of proxy [$PLUGIN_PROXY_PASSWORD, $PROXY_SSH_PASSWORD] + --proxy.host value connect to host of proxy [$PLUGIN_PROXY_HOST, $PROXY_SSH_HOST] + --proxy.port value connect to port of proxy (default: "22") [$PLUGIN_PROXY_PORT, $PROXY_SSH_PORT] + --proxy.timeout value proxy connection timeout (default: 0s) [$PLUGIN_PROXY_TIMEOUT, $PROXY_SSH_TIMEOUT] +``` + +## Secrets + +* `PASSWORD` - ssh server password +* `KEY` - ssh server private key