配置多个SSH KEY--多个用户身份
之前看朋友写了一篇配置SSH的文章,介绍了SSH原理以及免密登录=》链接戳此处 什么时候加上评论鸭Disqus也行
我来补充几句关于GIT服务的SSH使用方法
终端生成SSH密钥
$ ssh-keygen -t rsa -C "your_email@example.com"
Generating public/private rsa key pair.
Enter file in which to save the key
(/Users/your_user_directory/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
ssh-keygen -t rsa -C “名字” -f “名字_rsa”
your_email@example.com
改成自己的邮箱。
密码输入成功后出现如下提示,表示创建成功:
Your identification has been saved in
/Users/your_user_directory/.ssh/id_rsa.
Your public key has been saved in
/Users/your_user_directory/.ssh/id_rsa.pub.
The key fingerprint is:
fingerprint值 your_email@example.com
The key's randomart image is:
+--[ RSA 2048]----+
| .+ + |
| =oO. |
...
注解:这里第一次输入的是文件名,如果直接按回车则会自动生成私钥和公钥:id_rsa
、id_rsa.pub
。后面跟着的是密码和确认密码。
上方的命令执行多次则会生成多个 SSH KEY。
查看 SSH KEY
$ cat ~/.ssh/id_rsa.pub
ssh-rsa 公开密钥的内容 your_email@example.com
如果创建时输入了文件名,上方的id_rsa
替换成文件名。
此处返回的这段内容可用于使用 SSH KEY 的网站,这里不作过多阐述。
GIT CONFIG
像 github
或者 gitlab
等网站都会要求验证身份。通常情况下配置一个全局信息就可以了,针对一些特殊情况,如果需要配置多个身份信息,可以为项目单独配置。
配置全局信息
$ git config --global user.name "Firstname Lastname"
$ git config --global user.email "your_email@example.com"
这个命令会在~/.gitconfig
填入以下信息:
[user]
name = Firstname Lastname
email = your_email@example.com
如果需要修改信息,直接修改这个文件即可。
配置单独信息
$ cd your_project
$ git config user.name "Firstname Lastname"
$ git config user.email "your_email@example.com"
这个命令会在项目目录下输出文件:/.git/.config
这里设置的姓名和邮箱地址会用在 Git
的提交日志中。
为不同网站应用各自的 SSH KEY
在 ~/.ssh
目录下创建 config
文件:
$ vim ~/.ssh/config
输入以下信息:
Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_a
Host git.oschina.net
HostName git.oschina.net
User git
IdentityFile ~/.ssh/id_rsa_b
这里不同于SUNYANFENG.CN中提到的登录User root
而是User git
因为github或者gitlab的SSH地址为git@github.com:用户名/仓库名.github.io.git
再把对应的公钥添加至对应的网站上面。
注解:未加入配置文件的网站会自动应用id_rsa
。
至此,多个 SSH KEY 就可以同时使用了。
关于GPG和SSH
GPG 密钥是相对长期的,一对密钥生成以后会用几年甚至更久。
SSH 密钥是相对短期的,会经常换新。
GPG 密钥是绑定到人的,而 SSH 是绑定到服务器的(可以一个服务器用一对密钥,或者一个网站用一对密钥)。
所以对于 GitHub 来说,提供 SSH 密钥比较实际些。
而 GPG 密钥由于已经有各大服务器提供了,所以再提供一个意义不是很大
引用:
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。
评论已关闭