HTTP 访问 git server 时的免密码操作方法

文章目录

    有时必须采用 http 协议操作,提交代码时异常痛苦。介绍下免密码操作的方法。

    简易但不安全的方法

    用户根目录下新建一个 .netrc 文件, 相关参数改成自己的即可。

    machine git-server-ip-or-host 
    login your-accout 
    password your-password
    protocol http
    

    控制权限,防止偷窥

    chmod 0600 .netrc
    

    更安全的方法

    使用 gpg 对 .netrc 进行加密。

    生产一个 gpg key

    gpg --gen-key
    

    按照提示输入即可,最后一步可能耗时很长,静候几分钟即可。

    进行加密

    gpg -e -r <你的gpg key> .netrc
    

    这时生成一个 ~/.netrc.gpg 文件, 然后手动删除原有的明文 .netrc 文件。

    rm ~/.netrc
    

    修改项目下的 git 配置文件 your-project-path/.git/config, 添加

    [credential]
        helper = netrc -f ~/.netrc.gpg -v
    

    安装 credential-netrc

    运行 git fetch 时,可能遇到错误信息

    git: 'credential-netrc' is not a git command. See 'git --help'.
    

    只需要去下载工具 git-credential-netrc

    wget https://raw.githubusercontent.com/git/git/master/contrib/credential/netrc/git-credential-netrc
    chmod +x git-credential-netrc
    

    复制到自己的 bin 目录,加上可执行权限即可。

    愉快的提交代码吧 :)

    关于作者 🌱

    我是来自山东烟台的一名开发者,有感兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊,或者关注我的个人公众号“大象工具”, 查看更多联系方式