Git SSH key 的使用
摘要:
有时在我们第一次从某个git仓库拉取、推送代码或隔很长时间没有进行此操作的时候,git就会报
Permission denied (publickey)的错误,这是因为本地的SSH key和远程账户中的密钥不一致导致的。所以我们需要在本地生成一个SSH key文件,然后在git账户中进行绑定。
生成步骤
1. 检查密钥文件
$ cd ~/.ssh
$ ls
以上指令将查找C:\Users\用户名.ssh文件夹中的文件是否存在,如果输出以下内容,则说明你曾经已经生成过SSH密钥文件了,id_dsa.pub是你的公钥,id_dsa是私钥。
authorized_keys2
id_dsa
known_hosts
config
id_dsa.pub
如果已经绑定到git账户中或者未查询到以上公私钥文件,但依旧报Permission denied (publickey)错误,说明你需要从新生成一个SSH密钥。
2. 生成密钥文件
粘贴下面的文本,把后面替换成你自己的git账户邮箱。
# 生成新的密钥
$ ssh-keygen -t rsa -C "email@example.com"
点击回车,命令行将出现以下内容,这是询问你是否将密钥保存在默认位置,你可以直接回车确定。
# 文件保存位置
Generating public/private rsa key pair.
Enter file in which to save the key (C:\Users\DELL/.ssh/id_rsa):
如果你之前生成过SSH文件,将出现以下提示,这是询问你是否要完全覆盖旧的密钥文件,你可以输入"Y"以确认。
# 是否覆盖旧文件
C:\Users\DELL/.ssh/id_rsa already exists.
Overwrite (y/n)?
然后将询问你是否在每次通过ssh操作git时需要输入密码,你可以直接按两次回车置空,则视为不需要。
# 是否要求密码验证
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
操作完毕后,新的SSH密钥就生成了。
添加密钥到git账户(以github为例)
复制密钥文本
用记事本打开你刚刚生成的SSH密钥文件id_rsa.pub(Windows默认目录为"%HOMEPATH%\.ssh"),复制全部文本。
填入配置
点击右上角账号头像,选择Settings按钮,

进入设置页面之后,点击侧边栏的SSH an GPG keys选项,

然后点击New SSH key或 Add SSH key新建或添加密钥,

将刚才在本地复制的id_rsa.pub密钥文本,粘贴到文本框中。

然后点击Add SSH key按钮即可完成。

浙公网安备 33010602011771号