github使用ssh认证,说白了就是认证关系,以前电脑A(笔记本ubuntu)的~/.ssh/id_rsa下有私钥,github上填写好了公钥内容id_rsa.pub,认证关系打通了。
私钥要保护好,公钥随便用。公钥就好比你家大门,私钥是钥匙,大门可以随便给人看到,但钥匙不能给人随便用。私钥的默认名字是id_rsa,它的权限是600。
现在如果换电脑B(如vps),也是用linux,那么现在有两种方法,
方法一:把A上的密钥拷贝到B上,为了不影响vps的其他使用,名字不使用id_rsa,这里名字改为,id_rsa.github(相当于为一个大门,再配一把钥匙)
步骤如下:
cp A上~/.ssh/id_rsa 到B上 ~/.ssh/id_rsa.github,并把权限改为600
在B上创建~/.ssh/config,写入以下内容,保存退出。
它声名了目标主机是github.com,用户git,认证方式和文件,
PS:为方便连接其他主机时也可用这种方法,在同一机器上连接多个github账号也可使用这种方法。http://rsylareclipse.blog.163.com/blog/static/18550144020121285148377/
Host github.com User git Hostname github.com PreferredAuthentications publickey IdentityFile ~/.ssh/id_rsa.github
测试下能成功
jpuyy@www:~/.ssh$ ssh -T [email protected] Hi jpuyy! You've successfully authenticated, but GitHub does not provide shell access.
方法二:用ssh-keygen重新生成ssh公钥/密钥对(相当于重新开辟一个大门并配好钥匙)
这和在A上第一次使用时方法一样,但为了不使用默认名id_rsa,可用如下命令
ssh-keygen -C "[email protected]" -f ~/.ssh/id_rsa.github
这时把id_rsa.github.pub的内容copy到对应github.com的ssh公钥里
Leave a Reply