Git使用ssh密钥

说明

git支持https和git两种传输协议,github分享链接时会有两种协议可选,如果使用https协议,每次pull, push都会提示要输入密码,如果使用git协议,然后使用ssh密钥,这样免去每次都输密码的麻烦。

方法

Git服务器都会选择使用SSH公钥来进行授权。系统中的每个用户都必须提供一个公钥用于授权,没有的话就要生成一个。生成公钥的过程在所有操作系统上都差不多。

1.生成密钥对

$ cd ~/.ssh
$ ls
id_rsa known_hosts    id_rsa.pub
# 查看一下是否有id_rsa和id_rsa.pub(或者名称相同之类成对的文件),.pub 后缀的文件就是公钥,另一个文件则是密钥。

如果没有对应的文件,可以用ssh-keygen来创建

$ ssh-keygen -t rsa -C "your_email@youremail.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/用户名/.ssh/id_rsa):
#这边可以直接按Enter或者输入你要命名的文件名称

然后,会提示你输入密码,如下:

Enter passphrase (empty for no passphrase):
Enter same passphrase again:
# 建议输一个,安全一点,当然不输也行

设置好之后,如下

Your identification has been saved in id_rsa.
Your public key has been saved in id_rsa.pub.

到此为止,你本地的密钥对就生成了。

2.将SSH Key添加到ssh-agent

$ ssh-agent -s
$ ssh-add ~/.ssh/id_rsa
Identity added: /Users/用户名/.ssh/mayun (/Users/用户名/.ssh/id_rsa)
#如果新增的文件名称自定义 则这边id_rsa需要改成自定义的名称

可以查看ssh-agent中的密钥,检测是否添加成功

$ ssh-add -l
2048 SHA256:21d3d5dEQ6urjtWVz/PYTTwshYUd40f6LpktHpxubA /Users/用户名/.ssh/mayun (RSA)

还可以从ssh-agent中删除多余的密钥

 $ ssh-add -d ~/.ssh/mayun.pub
 Identity removed: /Users/用户名/.ssh/mayun (your_email@youremail.com)

3.添加公钥到你的远程仓库(如github)

  • 查看你生成的公钥:
    $ cat ~/.ssh/id_rsa.pub
    ssh-rsa AAAAtQ24lCDDtfqGx1k6SzXGiMaFC1yc2EAAAADAQABAAABAQCvv5eOTiFwkvoZtkotddOCo+uMGFrfkMssUbyRRYnYmp2l6hO8cZsrsQm0hwoZvpneCk6VB5G6CK+ULG5kwlKfTcdzQOEPy4WkRE8jhRhtR5QLZiqWN20dxTAXismXHYv7wQAbRcfuM7Z+RQvwBj46B3NzaRIxJsIZV4sVVq66rILGvcrbxH2wASLvnFoJhb43/29BxXGBxLPBC7Z5ej2+5T13JKj4+drDaluwoZSA1FMG0trq6OZwHdN+/isxgwrF8UpZOvtPq0GnRYjXG0GYI2xuUhpmxF37BfkB9KDE1lZ035zDNWJJf7OBaPQJ7kfJR your_email@youremail.com
    
  • 登陆你的github帐户,在Settings找到SSH and GPG keys选项,然后New SSH key
  • 接着复制上面的公钥内容,粘贴进“Key”文本域内,title随意命名
  • 点击 Add key

4 验证下新增的key是否有生效

$ ssh -T git@github.com

如果看到如下

Welcome to GitLab,***!

恭喜你,你的设置已经成功了

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容