All Projects → appleboy → Scp Action

appleboy / Scp Action

Licence: mit
GitHub Action that copy files and artifacts via SSH.

Programming Languages

shell
77523 projects

Labels

Projects that are alternatives of or similar to Scp Action

sync-deploy
🔄 shell toolkit for deploying script/command task on remote host, including up/download files, run script on remote
Stars: ✭ 20 (-94.44%)
Mutual labels:  scp
dicom-dimse-native
node js native addon for dimse services
Stars: ✭ 33 (-90.83%)
Mutual labels:  scp
Sync
syncs your local folder with remote folder using scp
Stars: ✭ 293 (-18.61%)
Mutual labels:  scp
vaultssh
A Go based Vault client to support ssh sessions, remote commands and scp transfers all in memory
Stars: ✭ 25 (-93.06%)
Mutual labels:  scp
simple http server
simple http server for upload and download
Stars: ✭ 101 (-71.94%)
Mutual labels:  scp
spc
A scp wrapper to manage across multiple remote machines
Stars: ✭ 18 (-95%)
Mutual labels:  scp
AdminToolbox
Server Administration Toolbox Plugin for SCP: Secret Lab
Stars: ✭ 17 (-95.28%)
Mutual labels:  scp
Ssh Mitm
ssh mitm server for security audits supporting public key authentication, session hijacking and file manipulation
Stars: ✭ 335 (-6.94%)
Mutual labels:  scp
AndroidSSH
Simple SSH and SFTP client for Android
Stars: ✭ 95 (-73.61%)
Mutual labels:  scp
Deployr
A simple golang application to automate the deployment of software releases.
Stars: ✭ 282 (-21.67%)
Mutual labels:  scp
blessclient
Go client to negotiate SSH certificates
Stars: ✭ 58 (-83.89%)
Mutual labels:  scp
github-action-scp
⬆️ Copy a folder to a remote server using SSH
Stars: ✭ 123 (-65.83%)
Mutual labels:  scp
ssh2.nim
Async SSH, SCP and SFTP client for Nim, using libssh2 wrapper [WIP]
Stars: ✭ 17 (-95.28%)
Mutual labels:  scp
mowoli
Mowoli - A Modality Worklist with RESTful HTTP API
Stars: ✭ 17 (-95.28%)
Mutual labels:  scp
Aws Gate
Better AWS SSM Session manager CLI client
Stars: ✭ 294 (-18.33%)
Mutual labels:  scp
sigil
AWS SSM Session manager client
Stars: ✭ 67 (-81.39%)
Mutual labels:  scp
ssh-am
SSH ACCOUNT MANAGEMENT
Stars: ✭ 15 (-95.83%)
Mutual labels:  scp
Cowrie
Cowrie SSH/Telnet Honeypot https://cowrie.readthedocs.io
Stars: ✭ 3,810 (+958.33%)
Mutual labels:  scp
Proftpd
ProFTPD source code
Stars: ✭ 318 (-11.67%)
Mutual labels:  scp
Synapse
An SCP:SL Modloader. Designed from Scratch with Harmony
Stars: ✭ 29 (-91.94%)
Mutual labels:  scp

🚀 SCP for GitHub Actions

GitHub Action for copying files and artifacts via SSH.

ssh key

Actions Status

Important: Only support Linux docker container.

Usage

Copy files and artifacts via SSH:

name: scp files
on: [push]
jobs:

  build:
    name: Build
    runs-on: ubuntu-latest
    steps:
    - uses: actions/[email protected]
    - name: copy file via ssh password
      uses: appleboy/[email protected]
      with:
        host: ${{ secrets.HOST }}
        username: ${{ secrets.USERNAME }}
        password: ${{ secrets.PASSWORD }}
        port: ${{ secrets.PORT }}
        source: "tests/a.txt,tests/b.txt"
        target: "test"

Input variables

See the action.yml file for more detail information.

  • host - scp remote host
  • 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 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, 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)

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)

Example

Copy file via a SSH password:

- name: copy file via ssh password
  uses: appleboy/[email protected]
  with:
    host: example.com
    username: foo
    password: bar
    port: 22
    source: "tests/a.txt,tests/b.txt"
    target: "test"

Copy file via a SSH key:

- name: copy file via ssh key
  uses: appleboy/[email protected]
  with:
    host: ${{ secrets.HOST }}
    username: ${{ secrets.USERNAME }}
    port: ${{ secrets.PORT }}
    key: ${{ secrets.KEY }}
    source: "tests/a.txt,tests/b.txt"
    target: "test"

Example configuration for ignore list:

- name: copy file via ssh key
  uses: appleboy/[email protected]
  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 servers:

  uses: appleboy/[email protected]
  with:
-   host: "example.com"
+   host: "foo.com,bar.com"
    username: foo
    password: bar
    port: 22
    source: "tests/a.txt,tests/b.txt"
    target: "test"

Remove the specified number of leading path elements:

- name: remove the specified number of leading path elements
  uses: appleboy/[email protected]
  with:
    host: ${{ secrets.HOST }}
    username: ${{ secrets.USERNAME }}
    key: ${{ secrets.KEY }}
    port: ${{ secrets.PORT }}
    source: "tests/a.txt,tests/b.txt"
    target: "foobar"
    strip_components: 1

Old target structure:

foobar
  └── tests
    ├── a.txt
    └── b.txt

New target structure:

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.

  - name: ssh key with passphrase
    uses: appleboy/[email protected]
    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"
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].