36 Commits

Author SHA1 Message Date
Bo-Yi Wu
f57f59fba9 chore(drone-scp): upgrade to 1.6.3
Some checks failed
scp files / Build (push) Failing after 4s
Signed-off-by: Bo-Yi Wu <appleboy.tw@gmail.com>
2021-10-23 18:49:52 +08:00
Bo-Yi Wu
8a54b39459 chore: replace ADD with COPY 2021-02-13 10:57:10 +08:00
Dan Tsekhanskiy
eb319b796f Minor typo/grammar fixes (#48)
Thanks for making this action! Noticed a few grammar/typos when going through the README.
2021-02-01 11:41:29 +08:00
Bjørn Wikkeling
3c3575eb49 fixed typo (#44) 2020-12-26 06:35:19 +08:00
Bo-Yi Wu
edc8ec9139 chore: bump drone-scp to v1.6.2
Some checks failed
scp files / Build (push) Failing after 5s
Signed-off-by: Bo-Yi Wu <appleboy.tw@gmail.com>
2020-06-15 16:04:17 +08:00
Bo-Yi Wu
167d6d7ff4 try the latest version
Signed-off-by: Bo-Yi Wu <appleboy.tw@gmail.com>
2020-06-15 16:00:17 +08:00
Bo-Yi Wu
ecd6a3623b Create .env 2020-06-15 15:33:59 +08:00
Bo-Yi Wu
31b514c281 fix typo 2020-06-05 09:06:01 +08:00
Bo-Yi Wu
5924b2b6d4 Merge pull request #25 from appleboy/use_insecure_cipher
Some checks failed
scp files / Build (push) Failing after 4s
2020-05-24 14:33:16 +08:00
Bo-Yi Wu
a2fea1040d chore: bump drone-scp to v1.6.1 2020-05-24 14:26:07 +08:00
Bo-Yi Wu
8535291767 chore: add use insecure cipher flag
fix server offered: [diffie-hellman-group-exchange-sha256] error

See https://github.com/appleboy/scp-action/issues/15
2020-05-24 14:24:45 +08:00
Bo-Yi Wu
faff4f4218 chore: bump drone-scp to 1.6.0
Some checks failed
scp files / Build (push) Failing after 5s
Signed-off-by: Bo-Yi Wu <appleboy.tw@gmail.com>
2020-05-22 09:47:12 +08:00
Bo-Yi Wu
ddd9176502 remove unused flag
Signed-off-by: Bo-Yi Wu <appleboy.tw@gmail.com>
2020-05-22 09:45:56 +08:00
Bo-Yi Wu
326e14ddd1 docs: add fingerprint flag
Signed-off-by: Bo-Yi Wu <appleboy.tw@gmail.com>
2020-05-22 09:44:56 +08:00
Bo-Yi Wu
0329cffdaa chore: remove fail job 2020-05-22 00:47:08 +08:00
Bo-Yi Wu
6df9245376 chore: add debug 2020-05-21 23:33:05 +08:00
Bo-Yi Wu
4df1959b05 chore: add debug 2020-05-21 23:30:27 +08:00
Bo-Yi Wu
1c43a9662a chore: test 2020-05-21 23:24:36 +08:00
Bo-Yi Wu
2949c755a2 Merge pull request #22 from appleboy/docs 2020-05-08 19:04:41 +08:00
Bo-Yi Wu
aefa39daef chore: Add limitation in readme 2020-05-08 19:04:16 +08:00
Bo-Yi Wu
2305e4000a upgrade drone-scp to 1.5.9
Some checks failed
scp files / Build (push) Failing after 4s
Signed-off-by: Bo-Yi Wu <appleboy.tw@gmail.com>
2020-05-05 09:54:11 +08:00
Bo-Yi Wu
c51573a06a upgrade drone-scp to 1.5.8
Some checks failed
scp files / Build (push) Failing after 5s
Signed-off-by: Bo-Yi Wu <appleboy.tw@gmail.com>
2020-05-04 12:44:33 +08:00
Bo-Yi Wu
d068cd7f84 Merge pull request #20 from appleboy/docs 2020-05-04 09:16:53 +08:00
Bo-Yi Wu
8ba3cfe760 docs: use with instead of env
Signed-off-by: Bo-Yi Wu <appleboy.tw@gmail.com>
2020-05-04 09:12:47 +08:00
Bo-Yi Wu
1a6b426141 chore: upgrade drone-scp to 1.5.7
Some checks failed
scp files / Build (push) Failing after 4s
2020-04-16 22:25:52 +08:00
Bo-Yi Wu
8b3eebcc8d Merge pull request #11 from dbingham/fixTypo
Some checks failed
scp files / Build (push) Failing after 5s
Update to drone-scp 1.5.6
2020-02-27 11:19:51 +08:00
Daniel Bingham
861f2e0e7b Update to drone-scp 1.5.6
To pull in the fix for the typo related to proxy_paraphrase
2020-02-26 18:19:00 -08:00
Bo-Yi Wu
6971270956 Add rm default value. 2020-02-25 23:47:04 +08:00
Bo-Yi Wu
bac6c9e026 update rm default value 2020-02-25 23:46:08 +08:00
Bo-Yi Wu
b04405242e chore: improve ci workflow 2020-02-14 00:49:23 +08:00
Bo-Yi Wu
5cb36bda99 chore: add proxy setting
Some checks failed
scp files / Build (push) Failing after 4s
2020-01-20 23:08:15 +08:00
Bo-Yi Wu
6c5771fab8 chore: Add passphrase 2020-01-20 23:07:25 +08:00
Bo-Yi Wu
193fd4eaa9 chore: add passphrase testing 2020-01-20 22:51:17 +08:00
Bo-Yi Wu
a5de8af6d5 chore: update default timeout to 10 minutes
Some checks failed
scp files / Build (push) Failing after 4s
2019-11-30 23:17:05 +08:00
Bo-Yi Wu
671c934c80 Update README.md 2019-09-30 21:52:10 +08:00
Bo-Yi Wu
8da6e3d335 update docs
Signed-off-by: Bo-Yi Wu <appleboy.tw@gmail.com>
2019-09-30 16:59:44 +08:00
5 changed files with 118 additions and 31 deletions

View File

@@ -6,9 +6,11 @@ jobs:
name: Build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- name: checkout
uses: actions/checkout@v1
- name: copy file via ssh password
uses: appleboy/scp-action@master
uses: ./
with:
host: ${{ secrets.HOST }}
username: ${{ secrets.USERNAME }}
@@ -18,7 +20,7 @@ jobs:
target: "test"
- name: copy file via ssh key
uses: appleboy/scp-action@master
uses: ./
with:
host: ${{ secrets.HOST }}
username: ${{ secrets.USERNAME }}
@@ -28,7 +30,7 @@ jobs:
target: "test"
- name: remove the specified number of leading path elements
uses: appleboy/scp-action@master
uses: ./
with:
host: ${{ secrets.HOST }}
username: ${{ secrets.USERNAME }}
@@ -37,3 +39,26 @@ jobs:
source: "tests/a.txt,tests/b.txt"
target: "foobar"
strip_components: 1
- name: ssh key with passphrase
uses: ./
with:
host: ${{ secrets.HOST }}
username: ${{ secrets.USERNAME }}
key: ${{ secrets.SSH2 }}
passphrase: ${{ secrets.PASSPHRASE }}
port: ${{ secrets.PORT }}
source: "tests/a.txt,tests/b.txt"
target: "test"
- name: use insecure cipher
uses: ./
with:
host: ${{ secrets.HOST }}
username: ${{ secrets.USERNAME }}
key: ${{ secrets.SSH2 }}
passphrase: ${{ secrets.PASSPHRASE }}
port: ${{ secrets.PORT }}
source: "tests/a.txt,tests/b.txt"
target: "test"
use_insecure_cipher: true

View File

@@ -1,5 +1,5 @@
FROM appleboy/drone-scp:1.5.3-linux-amd64
FROM appleboy/drone-scp:1.6.3-linux-amd64
ADD entrypoint.sh /entrypoint.sh
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
ENTRYPOINT ["/entrypoint.sh"]

View File

@@ -6,9 +6,11 @@
[![Actions Status](https://github.com/appleboy/scp-action/workflows/scp%20files/badge.svg)](https://github.com/appleboy/scp-action/actions)
**Important**: Only support **Linux** [docker](https://www.docker.com/) container.
## Usage
copy files and artifacts via SSH as blow.
Copy files and artifacts via SSH:
```yaml
name: scp files
@@ -33,26 +35,42 @@ jobs:
## Input variables
see the [action.yml](./action.yml) file for more detail imformation.
See the [action.yml](./action.yml) file for more detail information.
* host - scp remote host
* port - scp remote port
* port - scp remote port, default is `22`
* username - scp username
* password - scp password
* passphrase - the passphrase is usually to encrypt the private key
* fingerprint - fingerprint SHA256 of the host public key, default is to skip verification
* timeout - timeout for ssh to remote host, default is `30s`
* command_timeout - timeout for scp command, default is `1m`
* command_timeout - timeout for scp command, default is `10m`
* key - content of ssh private key. ex raw content of ~/.ssh/id_rsa
* key_path - path of ssh private key
* target - target path on the server
* source - scp file list
* rm - remove target folder before upload data
* rm - remove target folder before upload data, default is `false`
* strip_components - remove the specified number of leading path elements.
* overwrite - use `--overwrite` flag with tar
* tar_tmp_path - temporary path for tar file on the dest host
* use_insecure_cipher - include more ciphers with use_insecure_cipher (see [#15](https://github.com/appleboy/scp-action/issues/15))
SSH Proxy Setting:
* proxy_host - proxy host
* proxy_port - proxy port, default is `22`
* proxy_username - proxy username
* proxy_password - proxy password
* proxy_passphrase - the passphrase is usually to encrypt the private key
* proxy_timeout - timeout for ssh to proxy host, default is `30s`
* proxy_key - content of ssh proxy private key.
* proxy_key_path - path of ssh proxy private key
* proxy_fingerprint - fingerprint SHA256 of the host public key, default is to skip verification
* proxy_use_insecure_cipher - include more ciphers with use_insecure_cipher (see [#15](https://github.com/appleboy/scp-action/issues/15))
### Example
Copy file via ssh password
Copy file via a SSH password:
```yaml
- name: copy file via ssh password
@@ -66,17 +84,16 @@ Copy file via ssh password
target: "test"
```
Copy file via ssh key
Copy file via a SSH key:
```yaml
- name: copy file via ssh key
uses: appleboy/scp-action@master
env:
HOST: ${{ secrets.HOST }}
USERNAME: ${{ secrets.USERNAME }}
PORT: ${{ secrets.PORT }}
KEY: ${{ secrets.KEY }}
with:
host: ${{ secrets.HOST }}
username: ${{ secrets.USERNAME }}
port: ${{ secrets.PORT }}
key: ${{ secrets.KEY }}
source: "tests/a.txt,tests/b.txt"
target: "test"
```
@@ -86,20 +103,18 @@ Example configuration for ignore list:
```yaml
- name: copy file via ssh key
uses: appleboy/scp-action@master
env:
HOST: ${{ secrets.HOST }}
USERNAME: ${{ secrets.USERNAME }}
PORT: ${{ secrets.PORT }}
KEY: ${{ secrets.KEY }}
with:
host: ${{ secrets.HOST }}
username: ${{ secrets.USERNAME }}
port: ${{ secrets.PORT }}
key: ${{ secrets.KEY }}
source: "tests/*.txt,!tests/a.txt"
target: "test"
```
Example configuration for multiple server
Example configuration for multiple servers:
```diff
- name: copy file via ssh password
uses: appleboy/scp-action@master
with:
- host: "example.com"
@@ -111,7 +126,7 @@ Example configuration for multiple server
target: "test"
```
remove the specified number of leading path elements
Remove the specified number of leading path elements:
```yaml
- name: remove the specified number of leading path elements
@@ -126,7 +141,7 @@ remove the specified number of leading path elements
strip_components: 1
```
old target structure:
Old target structure:
```sh
foobar
@@ -135,10 +150,25 @@ foobar
└── b.txt
```
new target structure:
New target structure:
```sh
foobar
├── a.txt
└── b.txt
```
Protecting a Private Key. The purpose of the passphrase is usually to encrypt the private key. This makes the key file by itself useless to an attacker. It is not uncommon for files to leak from backups or decommissioned hardware, and hackers commonly exfiltrate files from compromised systems.
```diff
- name: ssh key with passphrase
uses: appleboy/scp-action@master
with:
host: ${{ secrets.HOST }}
username: ${{ secrets.USERNAME }}
key: ${{ secrets.SSH2 }}
+ passphrase: ${{ secrets.PASSPHRASE }}
port: ${{ secrets.PORT }}
source: "tests/a.txt,tests/b.txt"
target: "test"
```

View File

@@ -16,17 +16,28 @@ inputs:
default: "30s"
command_timeout:
description: 'timeout for scp command'
default: "1m"
default: "10m"
key:
description: 'content of ssh private key. ex raw content of ~/.ssh/id_rsa'
key_path:
description: 'path of ssh private key'
passphrase:
description: 'ssh key passphrase'
fingerprint:
description: 'fingerprint SHA256 of the host public key, default is to skip verification'
use_insecure_cipher:
description: 'include more ciphers with use_insecure_cipher'
default: false
target:
description: 'target path on the server'
source:
description: 'scp file list'
rm:
description: 'remove target folder before upload data'
default: false
debug:
description: 'enable debug message'
default: false
strip_components:
description: 'remove the specified number of leading path elements'
default: 0
@@ -35,6 +46,29 @@ inputs:
default: false
tar_tmp_path:
description: 'temporary path for tar file on the dest host'
proxy_host:
description: 'ssh proxy remote host'
proxy_port:
description: 'ssh proxy remote port'
default: 22
proxy_username:
description: 'ssh proxy username'
proxy_password:
description: 'ssh proxy password'
proxy_passphrase:
description: 'ssh proxy key passphrase'
proxy_timeout:
description: 'timeout for ssh to proxy host'
default: "30s"
proxy_key:
description: 'content of ssh proxy private key. ex raw content of ~/.ssh/id_rsa'
proxy_key_path:
description: 'path of ssh proxy private key'
proxy_fingerprint:
description: 'fingerprint SHA256 of the host public key, default is to skip verification'
proxy_use_insecure_cipher:
description: 'include more ciphers with use_insecure_cipher'
default: false
runs:
using: 'docker'
image: 'Dockerfile'

View File

@@ -2,8 +2,6 @@
set -eu
export GITHUB="true"
[ -n "$INPUT_STRIP_COMPONENTS" ] && export INPUT_STRIP_COMPONENTS=$((INPUT_STRIP_COMPONENTS + 0))
sh -c "/bin/drone-scp $*"