* * renamed "development" to "develop" * * renamed "development" to "develop" |
||
|---|---|---|
| .github/workflows | ||
| lib | ||
| node_modules/@actions/core | ||
| scripts | ||
| src | ||
| .editorconfig | ||
| .eslintrc.yml | ||
| .gitignore | ||
| .markdownlint.yml | ||
| .npmrc | ||
| CHANGELOG.md | ||
| LICENSE | ||
| README.md | ||
| action.yml | ||
| package-lock.json | ||
| package.json | ||
| ssh-key-action.code-workspace | ||
| tsconfig.json | ||
README.md
Install SSH Key
This action installs SSH key in ~/.ssh.
Useful for SCP, SFTP, and rsync over SSH in deployment script.
Works on all virtual environment -- Windows, macOS, Ubuntu and Ubuntu 16.04.
Usage
Add your SSH key to your product secrets by clicking Settings - Secrets - Add a new secret beforehand.
runs-on: ubuntu-latest
steps:
- name: Install SSH key
uses: shimataro/ssh-key-action@v1
with:
private-key: ${{ secrets.SSH_KEY }}
name: id_rsa # optional
known-hosts: ${{ secrets.KNOWN_HOSTS }} # known_hosts; optional
config: ${{ secrets.CONFIG }} # ssh_config; optional
- name: Install packages
run: apt install openssh-client rsync
- name: rsync over ssh
run: rsync ./foo/ user@remote:bar/
See Workflow syntax for GitHub Actions for details.
Install multiple keys
If you want to install multiple keys, call this action multiple times. It is useful for port forwarding.
NOTE: When this action is called multiple times, the contents of known-hosts and config will be appended. But private-key must be saved as different name, by using name option.
runs-on: ubuntu-latest
steps:
- name: Install SSH key of bastion
uses: shimataro/ssh-key-action@v1
with:
private-key: ${{ secrets.SSH_KEY_OF_BASTION }}
name: id_rsa-bastion
known-hosts: ${{ secrets.KNOWN_HOSTS_OF_BASTION }}
config: |
Host bastion
HostName xxx.xxx.xxx.xxx
User user-of-bastion
IdentityFile ~/.ssh/id_rsa-bastion
- name: Install SSH key of target
uses: shimataro/ssh-key-action@v1
with:
private-key: ${{ secrets.SSH_KEY_OF_TARGET }}
name: id_rsa-target
known-hosts: ${{ secrets.KNOWN_HOSTS_OF_TARGET }} # will be appended!
config: | # will be appended!
Host target
HostName yyy.yyy.yyy.yyy
User user-of-target
IdentityFile ~/.ssh/id_rsa-target
ProxyCommand ssh -W %h:%p bastion
- name: Install packages
run: apt install openssh-client
- name: SCP via port-forwarding
run: scp ./foo/ target:bar/
License
The scripts and documentation in this project are released under the MIT License
Changelog
See CHANGELOG.md.