Git 授权
常规的 git 授权有2种方法,ssh 协议对应的 ssh-key 和 https 协议的用户名密码验证。
git over ssh
我们使用 ssh-keygen 生成公私钥,输入 ssh-keygen 一路回车,ls -alth ~/.ssh 可以看到生成2个文件 id_rsa、id_rsa.pub 也就是密钥和公钥。
$ ssh-keygen
...
$ ls -alth ~/.ssh
-rw-------@ 1 brian staff 2.6K Jun 15 2020 id_rsa
-rw-r--r--@ 1 brian staff 584B Jun 15 2020 id_rsa.pub
将公钥加入到 github 等 git 版本控制服务系统。
$ git clone git@github.com:nixihz/easyconf.git
git over https
以下方式是通过 https 协议下载代码。要求输入用户名和密码,但每次都输入还是比较烦。
$ git clone https://github.com/nixihz/toolkit.git
Cloning into 'toolkit'...
Username for 'https://github.com':
我们可以使用 netrc 文件来管理登录信息。
netrc 是什么
netrc
是一个用于存储用户的登录信息(如用户名和密码)的文件。它通常用于命令行工具和脚本中,以便自动登录到远程服务器或服务。文件通常存在于 ~/.netrc,格式如下:
machine codeup.aliyun.com login brian password xxxxxx
注意点:
- netrc 在 *nix 系统中,必须是utf-8不带bom头格式的纯文本格式
- 如果使用虚拟机,切记不要从windows 拷贝 _netrc 文件到 虚拟机中 不支持
- netrc 作为存储了关键信息的文件,在 *nix 多用户操作系统中,修改文件权限为 600
chmod 600 ~/.netrc
此时就能正常 clone https 的 git 地址了。
Go mod 包管理同样是使用 https 协议拉取依赖,因此 .netrc 算是必备啦。