ฉันเห็น 2 ตัวเลือกที่นี่โดยใช้ ssh-ตัวแทน:
ชื่อ: ปรับใช้
บน: [กด]
งาน:
  ปรับใช้:
    ทำงานบน: ubuntu-20.04
    สภาพแวดล้อม:
      USER_HOST: ec2-user@ec2...
      HOST_KEY: ec2... ecdsa-sha2-nistp256 AAAA...mXU=
    ขั้นตอน:
      - ชื่อ: ตรวจสอบรหัส
        ใช้: การดำเนินการ/checkout@v2
      - ชื่อ: เรียกใช้ ssh-agent
        ใช้: webfactory/ssh-agent@v0.5.1
        กับ:
          ssh-คีย์ส่วนตัว: ${{ secrets.SSH_PRIVATE_KEY }}
      - ชื่อ: เพิ่มรหัสโฮสต์ใน ~/.ssh/known_hosts
        วิ่ง: |
          echo "$HOST_KEY" >> ~/.ssh/known_hosts
      - ชื่อ: ปรับใช้
        วิ่ง: |
          ตั้ง -x
          สาขา=${GITHUB_REF#refs/heads/}
          cat .github/deploy.sh | ssh -T "$USER_HOST" sh -s "$สาขา"
และไม่มี ssh-ตัวแทน:
ชื่อ: ปรับใช้
บน: [กด]
งาน:
  ปรับใช้:
    ทำงานบน: ubuntu-20.04
    สภาพแวดล้อม:
      USER_HOST: ec2-user@ec2...
      HOST_KEY: ec2... ecdsa-sha2-nistp256 AAAA...mXU=
    ขั้นตอน:
      - ชื่อ: ตรวจสอบรหัส
        ใช้: การดำเนินการ/checkout@v2
      - ชื่อ: ตั้งค่า ssh
        วิ่ง: |
          ตั้ง -x
          mkdir ~/.ssh
          echo "$SSH_PRIVATE_KEY" > ~/.ssh/id_rsa
          chmod 0600 ~/.ssh/id_rsa
          echo "$HOST_KEY" >> ~/.ssh/known_hosts
        สภาพแวดล้อม:
          SSH_PRIVATE_KEY: ${{ ความลับ.SSH_PRIVATE_KEY }}
      - ชื่อ: ปรับใช้
        วิ่ง: |
          ตั้ง -x
          สาขา=${GITHUB_REF#refs/heads/}
          cat .github/deploy.sh | ssh -Ti ~/.ssh/id_rsa "$USER_HOST" sh -s "$ สาขา"
ทั้งสองคนปลอดภัยหรือไม่? หรือควรจะเลือกอย่างใดอย่างหนึ่ง? โรงงานเว็บ / ตัวแทน ssh ไม่เก็บกุญแจ บนดิสก์.