私有密钥和公有密钥是成对的两个文件,私有文件保存在自己的本机,公有密钥保存到另一端的服务器,网站等。github就是一种网站。
只有保存了私有密钥的机器才能访问远程的服务器等。使用该键的好处是不用使用密码,而是以密钥的方式验证用户。
要想使本机能访问github。有三个步骤:
1. 创建私有密钥和公有密钥
2. 将公有密钥放到github里。
3. 测试是否设置成功。
步骤1:
首先判断本机是否创建了公有密钥:
$ls ~/.ssh
如果没有类似 id_rsa和id_rsa.pub这样的文件,则表明没有创建。
生成的办法是:
$ssh-keygen -t rsa -C "yourgitemail.com"
执行后,会填写保存两种密钥的文件夹,和passphrase,全部可以按enter。
然后执行ls来查看生成后的文件。
$ls ~/.ssh
id_rsa和id_rsa.pub分别是私有密钥和公有密钥。
步骤2:
打开id_rsa.pub将里面的内容复制到剪贴板。添加到Github的ssh kesy设定里。
https://github.com/settings/ssh
点击右上角 Add SSH key
输入title(e.g:mac),然后将复制的公有密钥ctrl+v粘贴到key.
这样就完成了上述的步骤1和2.
步骤3:
接下来进行测试。
$ssh -T git@github.com
如果显示:
...
Are you sure you want to continue connecting (yes/no)?
输入yes。
然后就可以看到
Hi yourusername! You've successfully authenticated, but GitHub does not
provide shell access.
这样就可以通过ssh方式clone Github上的工程并且进行pull和push了。
使用密钥方法只对ssh方式有效。比如clone的时候需要选择ssh,这样就能保证git remote url是ssh方式的url。
如果使用http clone,则每次push需要输入账号密码。要避免每次输入账号密码,可以在~/.netrc文件里明文写账号密码,但这不是个好办法。
总结:如果在步骤3的ssh命令后或者输入yes后出现github Permission denied错误。
把以下两行命令加到~/.bash_profile里.
//start the ssh-agent in the background
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa
再执行
$source ~/.bash_profile
$ssh -T git@github.com
生成ssh公有密钥并且注册到Github Generate ssh rsa keys and register public key on Github
最新推荐文章于 2025-06-03 19:12:03 发布