V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
zohner
V2EX  ›  程序员

centos 设置 git 服务器遇到的问题,求大佬解惑

  •  
  •   zohner · Mar 30, 2018 · 3796 views
    This topic created in 2960 days ago, the information mentioned may be changed or developed.

    想在自己的 VPS 上放一个 git 远程库,百度下基本步骤都差不多,打开 RSA 认证,创建 SSH 密钥对,导入公钥,一一照做了,唯独有一步,新建一个 git 用户用来运行 Git 服务,因为 vps 只有我一个人用,一直都是 root 登录,所以这一步我就省了,其它设置好后在客户端 clone 远程的库,还是提示要输入密码,是哪里出错了么,是不是我对这个创建 git 用户这一步理解错了,这一步是不能省的,求解?

    24 replies    2018-04-02 13:51:18 +08:00
    zohner
        1
    zohner  
    OP
       Mar 30, 2018
    补充下网上说.ssh 要 700 权限,authorized_keys 要 600 权限,这一步也是设置了的
    micean
        2
    micean  
       Mar 30, 2018
    group 要一致
    用户目录和.ssh 是 700
    公钥 644
    私钥 600
    wizardoz
        3
    wizardoz  
       Mar 30, 2018   ❤️ 1
    如果你用 root 登录并且只有你一个人用 Git 仓库,那么什么 rsa 认证,创建 ssh 密钥对导入公钥都是不需要的。
    以 SSH 的方式用 git,所有授权都是走 ssh 上的。

    假设你原来 root 已经配置好证书登录,你要弄一个 Test 工程,只要在 VPS 上
    mkdir -p /opt/GIT/Test
    pushd /opt/GIT/Test
    git init --bare

    然后在你的客户端
    git clone ssh://root@<your_host_ip>:/opt/GIT/Test

    看懂了吗? git 本身不需要任何配置,走的都是 ssh 的权限管理。

    至于网上教程要创建 git 用户的那种,主要是针对 多人协同开发的情况,那样的话就需要额外的组建来处理 git 用户和公钥之间的关系。

    PS:推荐看看 gitolite,小范围使用相当方便。
    zohner
        4
    zohner  
    OP
       Mar 30, 2018
    @wizardoz 对 SSH 这块不是很懂,我 vps 是腾讯云的,没有设置 SSH,是用密码登录的,然后建完 git 仓库后在 windows 上 clone 的地址是 git@<your_host_ip>:/git-res/test.git 这样的格式,这种情况下要怎么才能克隆成功呢,是不是也是不需要创建 git 用户的
    sikariba
        5
    sikariba  
       Mar 30, 2018
    不清楚你是哪里配错了,理论上来讲是可以不要 git 用户的
    forcecharlie
        6
    forcecharlie  
       Mar 30, 2018
    把你的 git clone URL 贴出来。
    zohner
        7
    zohner  
    OP
       Mar 30, 2018
    @forcecharlie git@<your_host_ip>:/git-res/test.git 这样的格式,我好像意识到问题出在哪了,这个地址是用 git 用户去连接的,应该把 git 改为 root
    whattheh3ll
        8
    whattheh3ll  
       Mar 30, 2018
    我最近也碰到这个问题,最后是在 sshd_config 的 AllowUsers 把 git 加进去才解决了。不然一直都是 git 的密码错误。
    BOYPT
        9
    BOYPT  
       Mar 30, 2018
    建议跑个 Gogs,不用这么折腾。
    jinhan13789991
        10
    jinhan13789991  
       Mar 30, 2018
    看下这个 https://docs.gitlab.com/runner/install/docker.html
    docker 你值得拥有
    forcecharlie
        11
    forcecharlie  
       Mar 30, 2018
    @zohner 对的,你 git 服务的用户是什么,git clone 也得用什么用户头。
    zohner
        12
    zohner  
    OP
       Mar 30, 2018
    本地 window 创建好密钥对,并到公钥添加到服务器了,现在可以成功 clone 了,但是为什么每次还是要输入 root 密码呢
    joyme
        13
    joyme  
       Mar 30, 2018
    @zohner 服务器的 ssh server 重启试试? window 上秘钥的生成直接用你的 git 工具去生成。
    zohner
        14
    zohner  
    OP
       Mar 30, 2018
    网上说
    第一,权限问题:
    ~ username/.ssh 必须是 700 权限
    ~ username/.ssh/authorized_keys 必须是 600 权限
    第二,检查 /etc/ssh/sshd_config 设置:
    RSAAuthentication yes
    PubkeyAuthentication yes
    AuthorizedKeysFile .ssh/authorized_keys

    这两步已经确认是了,为什么每次 clone,push 还要提示要输入 root 的密码呢
    Judoon
        15
    Judoon  
       Mar 30, 2018
    3 楼已经说的很清楚了,
    默认情况下你 clone 用的是 git 用户
    所以你需要
    git clone ssh://root@<your_host_ip>:/opt/GIT/Test

    指定 root 用户来 clone
    yogogo
        16
    yogogo  
       Mar 30, 2018
    git clone ssh://path
    zohner
        17
    zohner  
    OP
       Mar 30, 2018
    @Judoon 已经是用 root 了,现在的问题是,每次 clone 都要输入 root 的密码,难道是因为 root 本身有密码的,我应该还是创建一个 git 用户,不设置密码,这样才不用每次设置密码么
    Judoon
        18
    Judoon  
       Mar 30, 2018 via Android
    @zohner 你配置下用 key 能登录 root 就行了呀
    march1993
        19
    march1993  
       Mar 31, 2018
    @zohner 你 ssh 上去的时候要密码吗,如果要的话就是 ssh 问题
    msg7086
        20
    msg7086  
       Mar 31, 2018
    对于 git clone root@some-ip:some-prj.git ,可以测试这条命令是否正常:ssh root@some-ip。
    0x4b0082
        21
    0x4b0082  
       Mar 31, 2018
    2 楼 3 楼说的对 权限问题
    另外 请停止你使用我老婆头像的侵权行为(律师函警告⚠️
    zohner
        22
    zohner  
    OP
       Apr 2, 2018
    @Judoon 在哪设置呢,我 root 是用密码登录的,没用 key
    zohner
        23
    zohner  
    OP
       Apr 2, 2018
    @raphaelsoul 哈哈,拔刀吧
    zohner
        24
    zohner  
    OP
       Apr 2, 2018
    @wizardoz 3 楼正解,使用 ssh 认证方式后,直接用就行了,感谢
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5819 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 69ms · UTC 06:41 · PVG 14:41 · LAX 23:41 · JFK 02:41
    ♥ Do have faith in what you're doing.