mirror of
				https://github.com/appleboy/scp-action.git
				synced 2025-10-31 19:33:47 +00:00 
			
		
		
		
	🚀 SCP for GitHub Actions
GitHub Action for copying files and artifacts via SSH.
Usage
copy files and artifacts via SSH as blow.
- name: copy file via ssh password
  uses: appleboy/scp-action@master
  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 imformation.
- host - scp remote host
- port - scp remote port
- username - scp username
- password - scp password
- timeout - timeout for ssh to remote host
- command_timeout - timeout for scp command
- 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
- strip_components - remove the specified number of leading path elements.
- overwrite - use --overwriteflag with tar
- tar_tmp_path - temporary path for tar file on the dest host
Example
Copy file via ssh password
- name: copy file via ssh password
  uses: appleboy/scp-action@master
  with:
    host: example.com
    username: foo
    password: bar
    port: 22
    source: "tests/a.txt,tests/b.txt"
    target: "test"
Copy file via ssh key
- 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:
    source: "tests/a.txt,tests/b.txt"
    target: "test"
Example configuration for ignore list:
- 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:
    source: "tests/*.txt,!tests/a.txt"
    target: "test"
Example configuration for multiple server
- name: copy file via ssh password
  uses: appleboy/scp-action@master
  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/scp-action@master
  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
					Languages
				
				
								
								
									Shell
								
								100%
							
						
					