centos 设置 git 服务器遇到的问题,求大佬解惑 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
zohner
V2EX    程序员

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

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

    想在自己的 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     Solana     877 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 30ms UTC 22:27 PVG 06:27 LAX 15:27 JFK 18:27
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86