客户端生成ssh私钥和公钥
想要他们连接的话要创建证书登录 收集所有需要登录的用户的公钥,公钥位于id_rsa.pub文件中,把我们的公钥导入到/home/git/.ssh/authorized_keys文件里,一行一个。 打开windows的git bash,输入ssh-keygen -t rsa -C “邮箱”,生成ssh私钥和公钥
此时 C:\Users\用户名.ssh 下会多出两个文件 id_rsa 和 id_rsa.pub id_rsa 是私钥 id_rsa.pub 是公钥
服务器端 Git 打开 RSA 认证
进入 /etc/ssh 目录,编辑 sshd_config,打开以下三个配置的注释:
RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys
保存并重启 sshd 服务: [root@localhost ssh]# /etc/rc.d/init.d/sshd restart
将客户端公钥加到服务器
由 AuthorizedKeysFile 得知公钥的存放路径是 .ssh/authorized_keys,实际上是 $Home/.ssh/authorized_keys,由于管理 Git 服务的用户是 git,所以实际存放公钥的路径是 /home/git/.ssh/authorized_keys 在 /home/git/ 下创建目录 .ssh
[root@localhost git]# pwd /home/git [root@localhost git]# mkdir .ssh [root@localhost git]# ls -a . .. .bash_logout .bash_profile .bashrc .gnome2 .mozilla .ssh
然后把 .ssh 文件夹的 owner 修改为 git,为.ssh和authorized_keys修改权限
[root@localhost git]# chown -R git:git .ssh [root@localhost git]# chmod 700 .ssh [root@localhost git]# touch .ssh/authorized_keys [root@localhost git]#chmod 600 .ssh/authorized_keys
将客户端公钥id_rsa.pub文件的内容写到服务器端 /home/git/.ssh/authorized_keys 文件里
在客户端clone远程仓库
将服务器上的/opt/repository/gittest.git库克隆到本地 git clone [URL]git是用户名@服务器地址:仓库路径
可以看到本地上的服务器仓库了
在客户端远程仓库并提交代码
你已经在本地创建了一个Git仓库后,又想在服务器创建一个Git仓库,并且让这两个仓库进行远程同步 先在linux本地init一个仓库,在里面随意编辑一个文件,在本地提交,然后连接远程仓库,将文件push到服务器上,由于远程仓库是没有工作目录的,所以看不到你提交的文件,但是在服务器上git log一下,可以看到你提交的历史记录
远程库的名字就是origin,这是Git默认的叫法,也可以改成别的。 把本地库的内容推送到远程,用git push命令,实际上是把当前分支master推送到远程。 由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令,git push origin master就行 要查看远程库的信息 使用 git remote 它会列出你指定的每一个远程服务器的简写。 如果你已经克隆了自己的仓库,那么至少应该能看到 origin - 这是 Git 给你克隆的仓库服务器的默认名字 要查看远程库的详细信息 使用 git remote –v 会显示需要读写远程仓库使用的 Git 保存的简写与其对应的 URL,如果你的远程仓库不止一个,该命令会将它们全部列出