V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zohner
V2EX  ›  程序员

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

  •  
  •   zohner · 2018-03-30 14:50:30 +08:00 · 2896 次点击
    这是一个创建于 2190 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    24 条回复    2018-04-02 13:51:18 +08:00
    zohner
        1
    zohner  
    OP
       2018-03-30 14:51:58 +08:00
    补充下网上说.ssh 要 700 权限,authorized_keys 要 600 权限,这一步也是设置了的
    micean
        2
    micean  
       2018-03-30 15:21:30 +08:00
    group 要一致
    用户目录和.ssh 是 700
    公钥 644
    私钥 600
    wizardoz
        3
    wizardoz  
       2018-03-30 15:46:32 +08:00   ❤️ 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
       2018-03-30 15:55:56 +08:00
    @wizardoz 对 SSH 这块不是很懂,我 vps 是腾讯云的,没有设置 SSH,是用密码登录的,然后建完 git 仓库后在 windows 上 clone 的地址是 git@<your_host_ip>:/git-res/test.git 这样的格式,这种情况下要怎么才能克隆成功呢,是不是也是不需要创建 git 用户的
    sikariba
        5
    sikariba  
       2018-03-30 15:56:02 +08:00
    不清楚你是哪里配错了,理论上来讲是可以不要 git 用户的
    forcecharlie
        6
    forcecharlie  
       2018-03-30 15:57:29 +08:00
    把你的 git clone URL 贴出来。
    zohner
        7
    zohner  
    OP
       2018-03-30 15:59:55 +08:00
    @forcecharlie git@<your_host_ip>:/git-res/test.git 这样的格式,我好像意识到问题出在哪了,这个地址是用 git 用户去连接的,应该把 git 改为 root
    whattheh3ll
        8
    whattheh3ll  
       2018-03-30 16:23:40 +08:00
    我最近也碰到这个问题,最后是在 sshd_config 的 AllowUsers 把 git 加进去才解决了。不然一直都是 git 的密码错误。
    BOYPT
        9
    BOYPT  
       2018-03-30 16:33:17 +08:00
    建议跑个 Gogs,不用这么折腾。
    jinhan13789991
        10
    jinhan13789991  
       2018-03-30 16:54:52 +08:00
    看下这个 https://docs.gitlab.com/runner/install/docker.html
    docker 你值得拥有
    forcecharlie
        11
    forcecharlie  
       2018-03-30 16:59:50 +08:00
    @zohner 对的,你 git 服务的用户是什么,git clone 也得用什么用户头。
    zohner
        12
    zohner  
    OP
       2018-03-30 17:10:51 +08:00
    本地 window 创建好密钥对,并到公钥添加到服务器了,现在可以成功 clone 了,但是为什么每次还是要输入 root 密码呢
    joyme
        13
    joyme  
       2018-03-30 17:18:49 +08:00
    @zohner 服务器的 ssh server 重启试试? window 上秘钥的生成直接用你的 git 工具去生成。
    zohner
        14
    zohner  
    OP
       2018-03-30 17:28:45 +08:00
    网上说
    第一,权限问题:
    ~ 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  
       2018-03-30 17:46:12 +08:00
    3 楼已经说的很清楚了,
    默认情况下你 clone 用的是 git 用户
    所以你需要
    git clone ssh://root@<your_host_ip>:/opt/GIT/Test

    指定 root 用户来 clone
    yogogo
        16
    yogogo  
       2018-03-30 17:50:46 +08:00
    git clone ssh://path
    zohner
        17
    zohner  
    OP
       2018-03-30 17:58:13 +08:00
    @Judoon 已经是用 root 了,现在的问题是,每次 clone 都要输入 root 的密码,难道是因为 root 本身有密码的,我应该还是创建一个 git 用户,不设置密码,这样才不用每次设置密码么
    Judoon
        18
    Judoon  
       2018-03-30 18:31:52 +08:00 via Android
    @zohner 你配置下用 key 能登录 root 就行了呀
    march1993
        19
    march1993  
       2018-03-31 00:10:13 +08:00
    @zohner 你 ssh 上去的时候要密码吗,如果要的话就是 ssh 问题
    msg7086
        20
    msg7086  
       2018-03-31 00:25:58 +08:00
    对于 git clone root@some-ip:some-prj.git ,可以测试这条命令是否正常:ssh root@some-ip。
    raphaelsoul
        21
    raphaelsoul  
       2018-03-31 13:46:43 +08:00
    2 楼 3 楼说的对 权限问题
    另外 请停止你使用我老婆头像的侵权行为(律师函警告⚠️
    zohner
        22
    zohner  
    OP
       2018-04-02 10:41:15 +08:00
    @Judoon 在哪设置呢,我 root 是用密码登录的,没用 key
    zohner
        23
    zohner  
    OP
       2018-04-02 10:41:54 +08:00
    @raphaelsoul 哈哈,拔刀吧
    zohner
        24
    zohner  
    OP
       2018-04-02 13:51:18 +08:00
    @wizardoz 3 楼正解,使用 ssh 认证方式后,直接用就行了,感谢
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2727 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 15:32 · PVG 23:32 · LAX 08:32 · JFK 11:32
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.