生成ssh公有密钥并且注册到Github Generate ssh rsa keys and register public key on Github

私有密钥和公有密钥是成对的两个文件,私有文件保存在自己的本机,公有密钥保存到另一端的服务器,网站等。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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值