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

git clone认证失败:如何克隆Web服务器上的远程仓库?

解决Git Clone时SSH认证失败的问题

嘿,我来帮你搞定这个问题!你遇到的核心矛盾其实是认证方式不匹配——虽然你能用SSH登录服务器,但Git弹出用户名密码框的时候,它大概率是在走HTTPS认证流程,不是SSH,所以你输入SSH凭证肯定会失败。下面一步步给你解决:

第一步:先确认你用的是SSH仓库地址

你之前执行的git clone命令如果是HTTPS开头的(比如https://your-server/repo.git),那Git默认会触发HTTPS认证,弹框要的是Web仓库的登录账号密码,不是SSH的密钥信息,这就难怪你输SSH凭证会失败了。

正确的SSH仓库地址格式应该是下面两种之一:

  • 标准SSH格式:root@你的服务器IP:/仓库的绝对路径/repo.git
  • 完整SSH协议格式:ssh://root@你的服务器IP/仓库的绝对路径/repo.git

如果是你自己在服务器上创建的裸仓库,直接用上面的地址就行;如果是Web管理的仓库(比如Gitea、GitLab),去仓库页面找「SSH地址」的选项,复制那个链接。

第二步:用SSH地址重新克隆(或切换远程地址)

情况1:还没克隆仓库

直接执行正确的SSH克隆命令:

git clone root@你的服务器IP:/path/to/your/repo.git

这时候Git会自动调用你本地的SSH密钥来认证,只要你之前能SSH登录root,这里应该就不会弹框,直接克隆成功。

情况2:已经用HTTPS克隆过仓库

不想重新克隆的话,在本地仓库目录里执行命令切换远程地址为SSH:

git remote set-url origin root@你的服务器IP:/path/to/your/repo.git

之后再执行git pull或git push就会用SSH认证了。

第三步:确保本地SSH密钥已配置到服务器

虽然你能手动输密码SSH登录root,但为了让Git自动认证(不用每次输密码),最好把本地的SSH公钥添加到服务器的/root/.ssh/authorized_keys文件里:

  1. 本地终端执行(Windows用Git Bash或PowerShell):
    ssh-copy-id root@你的服务器IP
    
  2. 按照提示输入root密码,公钥就会自动添加到服务器对应位置,之后SSH连接(包括Git操作)都不用输密码了。

关于是否需要创建OpenSSH账户?

完全不需要!你已经拥有root权限,直接用root账户操作Git仓库就足够了。不过从安全角度建议你后续可以创建一个专门的git用户,只给它仓库目录的权限,把你的公钥加到这个用户的authorized_keys里,这样不用暴露root权限,但这是优化操作,不是必须的。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 06:56:36