You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在Windows系统上搭建带SSH验证的局域网Git仓库服务器

在Windows上搭建局域网SSH认证的Git仓库(小团队版)

嘿,刚好我之前帮小团队搭过类似的环境,步骤其实挺简单的,咱们一步步来:

第一步:在服务器端安装Git并创建裸仓库

先选一台Windows机器当Git服务器(普通办公机配置就够用):

  • 安装Git for Windows,安装时记得勾选「Git Bash Here」和「Add Git to PATH」(默认选项基本没问题)。
  • 找个合适的位置创建裸仓库(裸仓库没有工作目录,专门用来接收推送),比如D:\GitRepos\myproject.git。打开Git Bash输入命令:
    mkdir -p D:/GitRepos/myproject.git
    cd D:/GitRepos/myproject.git
    git init --bare
    

第二步:开启Windows自带的OpenSSH服务器

Win10及以上系统自带OpenSSH,无需额外安装:

  • 打开「设置」→「应用」→「可选功能」→「添加功能」,搜索「OpenSSH 服务器」完成安装。
  • 按Win+R输入services.msc,找到「OpenSSH SSH Server」服务,设置为「自动启动」并启动服务。

第三步:配置SSH认证(核心环节)

要实现免密码的SSH登录,得配置密钥认证:

  1. 服务器端准备
    • 在服务器的用户目录(比如C:\Users\ServerAdmin)下创建.ssh文件夹,再新建authorized_keys文件(注意无后缀名)。
    • 给这个文件设置权限:右键→「属性」→「安全」,删除除当前用户和SYSTEM外的所有权限,只保留当前用户的「读取」「写入」权限(权限太宽会被SSH拒绝连接)。
  2. 客户端生成并上传密钥
    • 每个团队成员打开自己电脑的Git Bash,输入:
      ssh-keygen -t ed25519 -C "your-work-email@xxx.com"
      
      一路回车默认生成即可,会在C:\Users\YourName\.ssh下得到id_ed25519(私钥,别泄露)和id_ed25519.pub(公钥)。
    • 把公钥文件里的内容复制出来,发给服务器管理员,管理员将每个成员的公钥一行行粘贴到服务器的authorized_keys文件中。

第四步:测试仓库访问

现在让团队成员验证连接:

  • 先获取服务器的局域网IP:服务器上按Win+R输入cmd,执行ipconfig找到IPv4地址(比如192.168.1.105)。
  • 成员在自己电脑的Git Bash里克隆仓库:
    git clone ssh://ServerAdmin@192.168.1.105/D/GitRepos/myproject.git
    
    第一次连接会提示确认主机,输入yes即可。成功克隆就说明SSH配置没问题。
  • 测试推送:克隆后随便加个文件,提交后推送到服务器:
    echo "team repo init" > README.md
    git add README.md
    git commit -m "first commit"
    git push origin main
    
    能正常推送就大功告成了!

一些实用小提示

  • 服务器防火墙要允许SSH默认端口(22)的入站连接,可在「Windows Defender防火墙」里添加入站规则,允许TCP端口22的连接。
  • 若服务器用户名含空格,克隆时要转义或用引号,比如ssh://"Server Admin"@192.168.1.105/D/GitRepos/myproject.git
  • 裸仓库默认无分支,第一次推送后才会创建main分支,成员克隆后看不到内容是正常现象,推送一次就会显示。

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

火山引擎 最新活动