如何将本地服务器与GitHub进行连接?

HCRM技术_小炮 云服务器 2025-03-30 1097 0
github怎么连接本地服务器

在当前的开发环境中,将本地服务器与GitHub连接并实现自动化部署,已成为提升效率的关键步骤,以下为具体操作流程,适用于具备基础命令行操作能力的用户。

第一步:生成SSH密钥

本地服务器与GitHub的通信依赖SSH协议,打开终端,执行以下命令生成密钥:

ssh-keygen -t ed25519 -C "your_email@example.com"

默认保存路径为~/.ssh/id_ed25519,生成后通过cat ~/.ssh/id_ed25519.pub 获取公钥内容。

第二步:配置GitHub仓库

github怎么连接本地服务器

1、登录GitHub,进入目标仓库的Settings > Deploy Keys

2、点击Add deploy key(如“Server-Deploy”),粘贴公钥内容,勾选Allow write access(若需自动提交)。

第三步:服务器环境准备

1、确保服务器已安装Git:

   sudo apt update && sudo apt install git -y

2、克隆仓库至服务器指定目录(如/var/www/project):

github怎么连接本地服务器
   git clone git@github.com:username/repo.git /var/www/project

第四步:自动化部署(两种方案)

方案一:Webhook触发

1、服务器安装Webhook监听工具(如webhook):

   sudo apt install webhook

2、创建钩子脚本hooks/deploy.sh

   #!/bin/bash
   cd /var/www/project && git pull origin main

3、配置Webhook服务(/etc/webhook.conf):

   [
     {
       "id": "github-deploy",
       "execute-command": "/var/www/project/hooks/deploy.sh",
       "command-working-directory": "/var/www/project"
     }
   ]

4、GitHub仓库中设置Webhook(Settings > Webhooks),URL格式为http://服务器IP:9000/hooks/github-deploy

方案二:GitHub Actions

1、仓库内创建.github/workflows/deploy.yml

   name: Auto Deploy
   on:
     push:
       branches: [main]
   jobs:
     deploy:
       runs-on: ubuntu-latest
       steps:
       - name: SSH Deploy
         uses: appleboy/ssh-action@master
         with:
           host: your_server_ip
           username: root
           key: ${{ secrets.SSH_PRIVATE_KEY }}
           script: |
             cd /var/www/project
             git pull origin main

2、将服务器私钥(id_ed25519存入仓库的Secrets,命名为SSH_PRIVATE_KEY

关键注意事项

1、权限控制:服务器目录需授予Git用户写入权限(例如chown -R gituser:gituser /var/www/project)。

2、防火墙配置:开放SSH端口(默认22)或Webhook监听端口(如9000)。

3、密钥安全:私钥文件权限应设为600,禁止外部访问。

个人观点

自动化部署的核心在于减少人为操作失误,Webhook方案适合轻量级项目,而GitHub Actions更适合需要多环境测试的场景,建议定期轮换SSH密钥,并通过日志监控(如journalctl -u webhook)确保流程稳定。

> 引用说明:GitHub官方文档(https://docs.github.com)、Linux man-pages项目(https://man7.org)

文章摘自:https://idc.huochengrm.cn/fwq/6135.html

评论