20 Commits

Author SHA1 Message Date
1d1b21ca96 Support multiple host with different port (#94)
Some checks failed
remote ssh command / Build (push) Failing after 3s
2020-11-17 10:51:06 +08:00
9fb11fb1f5 chore(host): support multiple port
https://github.com/appleboy/ssh-action/issues/85

Signed-off-by: Bo-Yi Wu <appleboy.tw@gmail.com>
2020-11-17 10:20:18 +08:00
fd39ef0f18 Update README.md 2020-10-31 07:03:29 +08:00
ffff33f8fe docs: update readme 2020-08-13 01:06:27 +08:00
8bd4933b73 Instructions to use SSH Key (#77) 2020-08-13 01:03:55 +08:00
bf84735fa9 fix: Multiline SSH commands interpreted as single lines
Some checks failed
remote ssh command / Build (push) Failing after 5s
fix https://github.com/appleboy/ssh-action/issues/75
2020-08-08 15:39:00 +08:00
d09b6e0211 chore: try the latest version 2020-08-08 15:34:38 +08:00
3ac4675689 chore: Add Multiline SSH commands interpreted as single lines 2020-08-08 12:26:01 +08:00
269a4479eb chore: Multiline SSH commands interpreted as single lines 2020-08-03 22:15:09 +08:00
a2f91cbad1 (info) Pass env variable as string (#69) 2020-07-08 16:46:24 +08:00
e2cbea5f00 chore: bump drone-ssh to v1.6.1 (#63)
Some checks failed
remote ssh command / Build (push) Failing after 4s
Signed-off-by: Bo-Yi Wu <appleboy.tw@gmail.com>
2020-06-15 16:45:26 +08:00
5711a203b3 fix typo 2020-06-05 09:05:02 +08:00
b315fb5f98 Update README.md 2020-06-05 09:03:15 +08:00
682eb0ddda chore: bump drone-ssh to v1.6.0
Some checks failed
remote ssh command / Build (push) Failing after 4s
2020-05-24 13:59:21 +08:00
03b440e441 docs: add cipher parameter 2020-05-24 13:13:09 +08:00
1cb5cd31c9 chore: update to latest version 2020-05-24 12:09:05 +08:00
c9eebc1cde chore: support use_insecure_cipher (#57)
Some checks failed
remote ssh command / Build (push) Failing after 3s
2020-05-24 10:54:31 +08:00
6b00175bad add support for fingerprint: (#54) 2020-05-19 14:21:26 +08:00
a912e225ec chore: Add limitation in readme 2020-05-08 19:05:53 +08:00
ad6643f705 chore: support ciphers
Some checks failed
remote ssh command / Build (push) Failing after 11s
Signed-off-by: Bo-Yi Wu <appleboy.tw@gmail.com>
2020-04-30 15:56:29 +08:00
4 changed files with 104 additions and 1 deletions

View File

@ -92,3 +92,43 @@ jobs:
script: |
whoami
ls -al
- name: use insecure cipher
uses: ./
with:
host: ${{ secrets.HOST }}
username: ${{ secrets.USERNAME }}
password: ${{ secrets.PASSWORD }}
port: ${{ secrets.PORT }}
script: |
ls \
-lah
use_insecure_cipher: true
# https://github.com/appleboy/ssh-action/issues/75#issuecomment-668314271
- name: Multiline SSH commands interpreted as single lines
uses: ./
with:
host: ${{ secrets.HOST }}
username: ${{ secrets.USERNAME }}
password: ${{ secrets.PASSWORD }}
port: ${{ secrets.PORT }}
script_stop: true
script: |
ls \
-lah
use_insecure_cipher: true
# https://github.com/appleboy/ssh-action/issues/85
- name: Deployment to multiple hosts with different ports
uses: ./
with:
host: "${{ secrets.HOST }}:${{ secrets.PORT }}"
username: ${{ secrets.USERNAME }}
password: ${{ secrets.PASSWORD }}
port: 1024
script_stop: true
script: |
ls \
-lah
use_insecure_cipher: true

View File

@ -1,4 +1,4 @@
FROM appleboy/drone-ssh:1.5.6-linux-amd64
FROM appleboy/drone-ssh:1.6.3-linux-amd64
ADD entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh

View File

@ -6,6 +6,8 @@
[![Actions Status](https://github.com/appleboy/ssh-action/workflows/remote%20ssh%20command/badge.svg)](https://github.com/appleboy/ssh-action/actions)
**Important**: Only support **Linux** [docker](https://www.docker.com/) container.
## Usage
Executing remote ssh commands.
@ -55,10 +57,13 @@ See [action.yml](./action.yml) for more detailed information.
* command_timeout - timeout for ssh command, default is `10m`
* key - content of ssh private key. ex raw content of ~/.ssh/id_rsa
* key_path - path of ssh private key
* fingerprint - fingerprint SHA256 of the host public key, default is to skip verification
* script - execute commands
* script_stop - stop script after first failure
* envs - pass environment variable to shell script
* debug - enable debug mode
* use_insecure_cipher - include more ciphers with use_insecure_cipher (see [#56](https://github.com/appleboy/ssh-action/issues/56))
* cipher - the allowed cipher algorithms. If unspecified then a sensible
SSH Proxy Setting:
@ -70,6 +75,33 @@ SSH Proxy Setting:
* 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 proxy host public key, default is to skip verification
* proxy_use_insecure_cipher - include more ciphers with use_insecure_cipher (see [#56](https://github.com/appleboy/ssh-action/issues/56))
* proxy_cipher - the allowed cipher algorithms. If unspecified then a sensible
### Setting up SSH Key
Make sure to follow the below steps while creating SSH Keys and using them.
The best practice is create the SSH Keys on local machine not remote machine.
Login with username specified in Github Secrets. Generate a RSA Key-Pair:
```bash
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
```
Add newly generated key into Authorized keys. Read more about authorized keys [here](https://www.ssh.com/ssh/authorized_keys/).
```bash
cat .ssh/id_rsa.pub | ssh b@B 'cat >> .ssh/authorized_keys'
```
Copy Private Key content and paste in Github Secrets.
```bash
clip < ~/.ssh/id_rsa
```
See the detail information about [SSH login without password](http://www.linuxproblem.org/art_9.html)
### Example
@ -132,6 +164,21 @@ Multiple Hosts
ls -al
```
Multiple Hosts with differebt port
```diff
- name: multiple host
uses: appleboy/ssh-action@master
with:
- host: "foo.com"
+ host: "foo.com:1234,bar.com:5678"
username: ${{ secrets.USERNAME }}
key: ${{ secrets.KEY }}
script: |
whoami
ls -al
```
Synchronous execution on multiple hosts
```diff
@ -169,6 +216,8 @@ Pass environment variable to shell script
echo "sha: $SHA"
```
_Inside `env` object, you need to pass every environment variable as a string, passing `Integer` data type or any other may output unexpected results._
Stop script after first failure. ex: missing `abc` folder
```diff

View File

@ -16,6 +16,11 @@ inputs:
sync:
description: 'synchronous execution if multiple hosts'
default: false
use_insecure_cipher:
description: 'include more ciphers with use_insecure_cipher'
default: false
cipher:
description: 'the allowed cipher algorithms. If unspecified then a sensible'
timeout:
description: 'timeout for ssh to host'
default: "30s"
@ -26,6 +31,8 @@ inputs:
description: 'content of ssh private key. ex raw content of ~/.ssh/id_rsa'
key_path:
description: 'path of ssh private key'
fingerprint:
description: 'sha256 fingerprint of the host public key'
proxy_host:
description: 'ssh proxy host'
proxy_port:
@ -44,6 +51,13 @@ inputs:
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: 'sha256 fingerprint of the proxy host public key'
proxy_cipher:
description: 'the allowed cipher algorithms. If unspecified then a sensible'
proxy_use_insecure_cipher:
description: 'include more ciphers with use_insecure_cipher'
default: false
script:
description: 'execute commands'
script_stop: