11)服务端
安装Git
[root@localhost ~]# apt-get install -y git
创建一个git用户,用来运行git服务
[root@localhost ~]# adduser git // 创建 git 用户
[root@localhost ~]# cd ~git // 进入git用户的home目录
[root@localhost ~]# mkdir .ssh
[root@localhost ~]# chmod 700 .ssh
[root@localhost ~]# touch .ssh/authorized_keys
[root@localhost ~]# chmod 600 .ssh/authorized_keys
禁用shell登录
注,出于安全考虑,创建的git用户不允许登录shell,这可以通过编辑/etc/passwd文件完成。找到类似下面的一行,改为:
[root@git ~]# gedit /etc/passwd
git:x:1000:1000::/home/git:/usr/bin/git-shell
这样,git用户可以正常通过ssh使用git,但无法登录shell,因为我们为git用户指定的git-shell每次一登录就自动退出。
初始化Git仓库
先选定一个目录作为Git仓库,这里是/data/git/project.git。
[root@git ~]# cd /data/git/
[root@git git]# git init --bare project.git
执行以上命令 Git命令,会创建一个裸仓库,裸仓库没有工作区,因为服务器上的Git仓库纯粹是为了共享,所以不让用户直接登录到服务器上去改工作区,并且服务器上的Git仓库通常都以.git结尾。然后,把owner改为git:
[root@git git]# chown -R git.git project.git
注意 cd ~xxx 和 /xxx的区别(home和根目录)
2)客服端
使用 SSH 公钥进行认证
为了向 Git 服务器提供 SSH 公钥,如果某系统用户尚未拥有密钥,必须事先为其生成一份。 这个过程在所有操作系统上都是相似的。 首先,你需要确认自己是否已经拥有密钥。 默认情况下,用户的 SSH 密钥存储在其 ~/.ssh 目录下。 进入该目录并列出其中内容,你便可以快速确认自己是否已拥有密钥:
[root@localhost ~]# ls ~/.ssh
authorized_keys2 id_dsa known_hosts
config id_dsa.pub
如果没有id_rsa.pub文件,则客服端生成SSH公钥
[root@localhost ~]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
79:87:ad:40:ef:ac:4f:ea:a0:47:f4:45:c3:22:31:66 root@localhost.localdomain
The key's randomart image is:
+--[ RSA 2048]----+
| E. . |
| o... + |
| ..o . |
| .. o.o |
| . .S.+ o |
| . .= o |
| .. = |
| ... + |
| .. .+.. |
+-----------------+
[root@localhost ~]# cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDmUiESftpB4oyLwzqMculvSL9M9yIiraaRinSXLkjNZFBIX9zIxKpCkU7SBKXOfFrQAa0dy+iS8CvAuGmKTQZx27pYXIS/fYpPS5BF/iZP7uQmJaICNuX+Eyog+KceRFyr8TIxsHsMlN74h9t4FusWn7GT7ulLmKc8n1H9t8QPCwT018z9swBzq1+QHJ6nMYGDU2NPai9dvaW3ik69OrxOtAlmHcLPPBkafgdMiL9AkIOGKJzJ73/UcrNUWqFGiwho9pKzWLaoupVYa7t/I+mWXwt/H9tr22qTxiDJZhTVKNPLdeVTUSpj8ZTe9/AAxo4PvNt+jZ5k24jfNEPkmpCl TOYOTA@DESKTOP-O7FUOAH
注,一路回车即可,将生成的id_rsa.pub内容追加到服务器上的/home/git/.ssh/authorized_keys后面,下次你用git时就不需要输入用户名和密码了。(默认输入密码pull,请忽略此方法)
上传id_rsa.pub到/home/git/.ssh/,重命名为id_rsa.kwin.pub,追加到authorized_keys 文件的末尾
在本地仓库使用乌龟git进行push
先配置
注意ip地址和路径
推送成功
关于下载