Văd 2 opțiuni aici, folosind ssh-agent
:
nume: deploy
pe: [împinge]
locuri de munca:
implementează:
rulează pe: ubuntu-20.04
env:
USER_HOST: ec2-user@ec2...
HOST_KEY: ec2... ecdsa-sha2-nistp256 AAAA...mXU=
pași:
- nume: Verificați codul
folosește: actions/checkout@v2
- nume: Rulați ssh-agent
utilizări: webfactory/[email protected]
cu:
ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }}
- nume: Adăugați cheia gazdei la ~/.ssh/known_hosts
alerga: |
echo „$HOST_KEY” >> ~/.ssh/known_hosts
- nume: Implementare
alerga: |
setați -x
BRANCH=${GITHUB_REF#refs/heads/}
cat .github/deploy.sh | ssh -T „$USER_HOST” sh -s „$BRANCH”
Și fără ssh-agent
:
nume: deploy
pe: [împinge]
locuri de munca:
implementează:
rulează pe: ubuntu-20.04
env:
USER_HOST: ec2-user@ec2...
HOST_KEY: ec2... ecdsa-sha2-nistp256 AAAA...mXU=
pași:
- nume: Verificați codul
folosește: actions/checkout@v2
- nume: Configurați ssh
alerga: |
setați -x
mkdir ~/.ssh
echo „$SSH_PRIVATE_KEY” > ~/.ssh/id_rsa
chmod 0600 ~/.ssh/id_rsa
echo „$HOST_KEY” >> ~/.ssh/known_hosts
env:
SSH_PRIVATE_KEY: ${{ secrete.SSH_PRIVATE_KEY }}
- nume: Implementare
alerga: |
setați -x
BRANCH=${GITHUB_REF#refs/heads/}
cat .github/deploy.sh | ssh -Ti ~/.ssh/id_rsa „$USER_HOST” sh -s „$BRANCH”
Sunt amândoi în siguranță? Sau ar trebui să fie preferat unul dintre ele? webfactory/ssh-agent
nu stochează cheia pe disc.