github action scp key
时间: 2023-08-30 14:01:11 浏览: 55
GitHub Action是一个强大的自动化工作流程工具,可以用于管理、构建和部署代码。在使用GitHub Action进行代码部署时,可能会使用到SCP(Secure Copy)命令来将文件或目录从本地复制到远程服务器。
首先,使用GitHub Action需要在仓库的根目录下创建一个`.github`文件夹。进入`.github`文件夹后,再创建一个`workflows`文件夹。在`workflows`文件夹中,创建一个用于部署的`.yml`文件(例如`deploy.yml`)。在该文件中定义了GitHub Action的工作流程。
在工作流程中,需要使用到SSH私钥来进行SCP操作。为了保证安全性,应该将SSH私钥存储为一个仓库的Secret。打开GitHub仓库的页面,点击右上角的“Settings”,然后选择“Secrets”选项。在“Secrets”页面中,点击“New repository Secret”按钮创建一个私钥Secret。将私钥命名为`SSH_PRIVATE_KEY`(或者其他自定义名称),并将私钥的内容粘贴到“Value”字段中,最后保存。
接下来,在`.yml`文件中的工作流程中使用SCP命令时,可以通过`${{ secrets.SSH_PRIVATE_KEY }}`访问到存储的SSH私钥。使用SCP命令将文件或目录复制到远程服务器时,可以先设置远程服务器的IP地址、用户名和目标路径等参数。然后,使用`scp`和`-i`选项(指定SSH私钥文件)进行SCP操作。
例如,下面是一个使用GitHub Action进行SCP操作的示例代码:
```yaml
name: Deploy to Server
on:
push:
branches:
- main
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Set up SSH
run: echo "${{ secrets.SSH_PRIVATE_KEY }}" > ~/.ssh/id_rsa && chmod 600 ~/.ssh/id_rsa
- name: SCP files to server
run: scp -r -i ~/.ssh/id_rsa local_folder/ username@ip_address:/remote_folder/
```
以上代码示例定义了一个名为"Deploy to Server"的工作流程,当代码提交到`main`分支时触发。工作流程包含了三个步骤,分别是检出代码、设置SSH和SCP文件到远程服务器。
注意,在使用该示例前,需要将示例中的`local_folder/`替换为本地文件或目录的路径,`username`和`ip_address`替换为实际的服务器用户名和IP地址,`/remote_folder/`替换为目标服务器的路径。
这样,当提交代码到`main`分支时,GitHub Action会自动运行工作流程,将文件或目录复制到远程服务器上。