您的位置:首页 > 其它

git设置远程仓库关于多用户ssh无密码登陆问题

2016-08-28 00:15 459 查看
Git是目前世界上最先进的分布式版本控制系统(没有之一)。

分布式版本控制系统与集中式版本控制系统不同

分布式版本控制系统根本没有“中央服务器”,每个人的电脑上都是一个完整的版本库,这样,你工作的时候,就不需要联网了,因为版本库就在你自己的电脑上

如果git只是在一个仓库里管理文件历史,Git和SVN真没啥区别。Git是分布式版本控制系统,同一个Git仓库,可以分布到不同的机器上。

在实际使用分布式版本控制系统的时候,分布式版本控制系统通常也有一台充当“中央服务器”的电脑,但这个服务器的作用仅仅是用来方便“交换”大家的修改,没有它大家也一样干活,只是交换修改不方便而已。为了学Git先搭个服务器绝对是小题大作。而GitHub网站就是提供Git仓库托管服务的,所以,只要注册一个GitHub账号,就可以免费获得Git远程仓库。

自行注册GitHub账号后,由于你的本地Git仓库和GitHub仓库之间的传输是通过SSH加密的,所以,需要一点设置:

第1步:创建SSH Key。

一般新用户在Ubuntu/Centos等Linux系统下没设置过ssh,即:用户主目录里没有
.ssh
目录,创建SSH Key:

$ ssh-keygen -t rsa -C "youremail@example.com"
官方说明-C后"  "内填写你的邮箱,个人验证其实可以是任何字符串
然后一路回车,使用默认值即可

用户主目录.ssh
目录里面有
id_rsa
id_rsa.pub
两个文件,这两个就是SSH Key的秘钥对,
id_rsa
是私钥,不能泄露出去,
id_rsa.pub
是公钥,可以放心地告诉任何人。

第2步:登陆GitHub,打开“settings”,“SSH and GPG keys”页面:

然后,点“New SSH Key”,填上任意Title,在Key文本框里粘贴
id_rsa.pub
文件的内容



完成后可以通过简单验证如下以确认是否可以成功无密码ssh登陆自己的github

hadoop@hadoop:.ssh$ ssh -T github.com
Hi xxxxxx! You've successfully authenticated, but GitHub does not provide shell access.
如此即可说明成功
第3步:在github中Create a new repository选择name如learngit,或自己已存在的repo也可

如果新建的repository会有相关提示如何与本地git同步

在本地创建git版本库(或已经存在的版本库均可),类似如下步骤

echo "# learngit" >> README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin git@github.com:yourgithubId/learngit.git
git push -u origin master然后在自己的github的repo中就上传了本地的README.md

然而对于多数Linux用户而言,ssh本地早以配置,其中
id_rsa
均不能被覆盖

可以进行如下方式配置

ssh-keygen -t rsa -C "your_email@youremail.com"
##更改默认生成/home/hadoop/.ssh/id_rsa的名称或者位置如:id_rsa_work
/home/hadoop/.ssh/id_rsa_work
 ssh-add ~/.ssh/id_rsa_work在/home/hadoop/.ssh创建conf
#Host是自定义的host简称,以后连接远程服务器就可以用命令ssh github.com
Host github.com
HostName github.com
User git
IdentityFile /home/hadoop/.ssh/id_rsa_work
#第二个git账号,或者其他使用
Host hadoop
HostName hadoop
User hadoop
IdentityFile /home/hadoop/.ssh/id_rsa


测试同上
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: