You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

通过SSH从GitHub拉取代码至Web服务器遇权限问题求助

服务器SSH访问GitHub问题解答

1. 服务器上配置SSH访问GitHub的必要步骤

  • 在服务器生成SSH密钥对:执行ssh-keygen -t ed25519 -C "your_email@example.com",全程回车即可完成;也可将本地用于GitHub的私钥安全传输到服务器~/.ssh/目录下
  • 将服务器公钥(~/.ssh/id_ed25519.pub文件内容)添加到GitHub账户的SSH Keys列表(GitHub设置→SSH and GPG keys→New SSH key)
  • 修正权限:确保~/.ssh目录权限为700,私钥文件(如id_ed25519)权限为600,公钥文件权限为644,执行命令:chmod 700 ~/.ssh && chmod 600 ~/.ssh/id_ed25519 && chmod 644 ~/.ssh/id_ed25519.pub
  • 验证连接:执行ssh -vT git@github.com,出现Hi [你的GitHub用户名]! You've successfully authenticated...即为配置成功

2. 把GitHub上的公钥复制到服务器.ssh/key的操作不正确

逻辑搞反了:GitHub需要存储服务器的公钥,服务器需要存储对应的私钥。默认SSH客户端只会自动查找~/.ssh/下id_rsa、id_ed25519这类默认命名的私钥文件,若你把私钥存成~/.ssh/key,SSH不会自动识别,要么重命名为默认文件名,要么通过config文件指定路径。

3. 是否需要配置.ssh/config文件?

不是必须,但两种场景下建议配置:

  • SSH密钥不是默认命名(比如叫github_key而非id_ed25519)
  • 需要自定义连接参数(如指定端口、代理)
    示例配置(放在~/.ssh/config,权限设为600):
Host github.com
  User git
  IdentityFile ~/.ssh/github_key

4. 能否直接将代码推送到Web服务器?

可以,常见两种方式:

  • Git远程仓库方式:在Web服务器创建裸Git仓库(git init --bare repo.git),本地将其设为远程仓库(git remote add server ssh://user@your-server-ip/path/to/repo.git),推送后通过仓库的post-receive钩子脚本自动同步代码到网站根目录
  • 直接文件传输:用scp或rsync命令直接推送本地代码到服务器网站目录,但这种方式没有版本控制的优势

内容的提问来源于stack exchange,提问作者Tobias Schmid

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 04:00:06