ubuntu 如何通过SSH连接AWS EC2示例?

svujldwt  于 5个月前  发布在  其他
关注(0)|答案(1)|浏览(60)

我无法使用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.


我做错了什么?

dldeef67

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中传递密钥

相关问题