五月
23
2017

SSH 方式下为 Git 设置多用户登录 补充说明

之前在 SSH 方式下为 Git 设置多用户登录 中对 Git 配置多个不同的账号访问不同的仓库做了说明。今天早上提交代码的时候,意外发现提交者的信息有些问题。提交者的名称和邮箱,变成了公司仓库的名称和邮箱。 仔细检查了一下,发现自己在多用户登录不同仓库的配置上,配置得不够到位,这也是很多相关的配置教程中没有提到的。 现在,将遗漏的配置项,做一个补充说明。 取消全局用户设置 Hy369 在自己的 Git 配置中遇到的问题,就是所有仓库的提交者信息,都是统一的。问题就出在配置提交信息的时候,采用的 git config --global 进行配置的。这个时候,Git 软件自然就是取用全局配置了。因此,我们先把全局配置的用户信息去掉。相关命令为: git config --global --unset user.name git config --global --unset user.email 那个,至于不取消有没有影响,Hy369 还没有测试过,如果哪位朋友测试过了,烦请告知一下。 为 Git 仓库单独配置用户信息 直接到每个克隆的仓库中,单独配置用户信息即可。相关命令为: git config --add user.name xxx git config --add user.email xxx@xxx.com 至此,新的提交者信息就是你需要的了。
五月
22
2017

SSH 方式下为 Git 设置多用户登录

特别说明 这个是目前开发过程中经常要遇到的问题了。呃,一般是系统装了环境之后会用到。又是 Hy369 要说的老话了:唉,不想每次都去谷歌百度了! 功能说明 针对 GIT 的 SSH 的方式,实现用不同的账号和密钥访问不同的仓库。 可能的场景: 通过电子邮箱1和密钥1访问 Github 通过电子邮箱2和密钥2访问 Oschina 通过电子邮箱3和密钥3访问公司内部仓库 实现方式 第一步 生成各个站点需要用到的密钥 相关命令与推荐参数: # 切换到 .ssh 目录(建议,可偷懒) cd ~/.ssh # 生成密钥文件 ssh-keygen -t rsa -C "youremail@mail.com" -f 密钥文件名,如:id_rsa.github # 加载私钥文件 ssh-add 密钥文件名 命令说明: 推荐切换到 .ssh 目录下面,Windows 环境下,.ssh目录在 C:\Users\登录账号同名文件夹\。这样可以在输入生成文件路径的时候省事。若不存在这个文件夹,直接创建即可。 ssh-keygen -t 参数表示生成的类型为:rsa ssh-keygen -C 注释,推荐带上,这样拷贝公钥到 Git 仓库中时,Web端一般会自动把 Comment 作为公钥名称显示,嗯,又可以偷懒了。 ssh-keygen -f 输出密钥文件的路径,很多教程中,都没有这个选项,这样就导致执行时会询问把文件用什么名字存在哪里。个人认为:不利于偷懒,所以推荐带这个选项咯。 后续的所有询问直接回车搞定了,一般不设置密码,如果需要,请自行百度,Hy369 还没有使用过,没有发言权。 命令执行完以后, .ssh 目录下,就会生成密钥文件,带 .pub 的就是密钥的公钥。 需要多少个不同的密钥,便执行上述步骤即可。 第二步 配置 config 文件 在 .ssh 目录下,创建一个 config 文件。注意没有后缀。实现为不同的仓库配置不同的密钥: 配置文件样例: # oschina Host git.oschina.net HostName git.oschina.net PreferredAuthentications publickey IdentityFile ~/.ssh/id_rsa.oschina User Hylin # github Host github.com HostName github.com PreferredAuthentications publickey IdentityFile ~/.ssh/id_rsa.github User Hy369 至此,配置完成,正常情况下,便可使用了。 第三步 添加公钥到网站 登录自己的 Github 或者 Oschina,公司的请咨询运维。一般在个人设置的界面,有个 SSH 的选项或者导航标签,点击进去,就可以看到添加公钥的界面。 将公钥中的字符,全部复制到文本框内,然后设置一个便于自己区分的名字,提交即可。 第四步 测试 ssh -T git@github.com # 如果出现了这个提示,直接输入 yes 确认即可 The authenticity of host 'github.com (192.30.255.113)' can't be established. RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8. Are you sure you want to continue connecting (yes/no)? # 以下是成功之后的信息: Hi Hy369! You've successfully authenticated, but GitHub does not provide shell access. 如果没有成功,试着备份或者重命名一下 .ssh 目录下的 known_hosts 文件,再次尝试。 如果还是有问题,请针对具体问题,利用搜索引擎查找一下解决方案。或者,你也可以给 Hy369 发邮件,Hy369 会为你提供力所能及的帮助。 SSH 方式下为 Git 设置多用户登录 补充说明