我无法使用github action通过ssh连接到AWS EC2 Ubuntu示例。
这是我的github action工作流程
name: Testing
on:
push:
branches:
- test
jobs:
test:
...
deploy:
name: Deploy to UAT
needs: integration-test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v1
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: ${{ secrets.AWS_REGION }}
- name: Deploy to EC2 instance
run: ssh -o StrictHostKeyChecking=no ${{ secrets.AWS_INSTANCE_IP }} "cd /var/www/html/api/uat && git pull && composer install --no-dev && php artisan migrate:seed && php artisan optimize"
字符串deploy
作业一直运行到Deploy to EC2 instance
,并出现以下错误:
Run ssh -o StrictHostKeyChecking=no *** "cd /var/www/html/api/uat && git pull && composer install --no-dev && php artisan migrate:seed && php artisan optimize"
ssh -o StrictHostKeyChecking=no *** "cd /var/www/html/api/uat && git pull && composer install --no-dev && php artisan migrate:seed && php artisan optimize"
shell: /usr/bin/bash -e {0}
env:
AWS_DEFAULT_REGION: ***
AWS_REGION: ***
AWS_ACCESS_KEY_ID: ***
AWS_SECRET_ACCESS_KEY: ***
Warning: Permanently added '***' (ED25519) to the list of known hosts.
runner@***: Permission denied (publickey).
Error: Process completed with exit code 255.
型
我做错了什么?
1条答案
按热度按时间dldeef671#
我做错了什么?
您似乎没有向ssh提供任何凭据。
你需要做一些事情来达到这个效果:
1.保存你的ssh私钥
1.将秘密传递到环境变量中的docker镜像。
1.保存到容器中的临时文件:
TEMP_KEY=$(mktemp); echo "$SSH_SECRET" > "$TEMP_KEY"
1.删除密钥文件
chmod go-rwx "$TEMP_KEY"
上的非所有者权限1.将其作为参数传递给ssh:
ssh -i "$TEMP_KEY" …
或者,您可以使用操作appleboy/ssh-action,并在其参数
key
中传递密钥