-
Notifications
You must be signed in to change notification settings - Fork 0
/
custom_remote_note
59 lines (58 loc) · 2.86 KB
/
custom_remote_note
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
Linux服务器上搭建git远程仓库
//1.安装git。
yum install git
//2.查看git版本号
git --version
//3.创建git用户(如果用户已经存在,就不要有冲突,起个另外的名字或者删除原来的用户)
// 此时该用户会在/home文件夹下创建与用户同名的git文件夹,存放该用户的配置信息。
useradd git
//4.创建密码
passwd git
//5.创建git项目文件夹(文件夹最好以git为后缀,git规范)
mkdir /home/git_repository.git
//6.初始化git服务器配置
git init --bare /home/git_repository.git
//7.给git用户所有权限
chown -R git:git git_repository.git
//8.1 打开SSH登录配置,在/etc/ssh下
vim sshd_config
//8.2 打开注释
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
//8.3 重启ssh服务(这里是阿里云linux服务器)
service sshd restart
//9.在用户配置文件夹/home/git下新建.ssh文件夹,用来存放authorized_keys(所有用户的sshkey)
mkdir /home/git/.ssh
//10.修改.ssh文件的权限
chown -R git:git /home/git/.ssh
//11.最最最重要的一步,修改.ssh文件夹和authorized_keys的权限,如果权限不对,则authorized_keys文件不会被读取,即SSH免登陆失败
// 注意:文件夹”.ssh”中的三个文件的权限,是有要求的,”自己之外的任何人对每个文件都没有写权限”。另外,”.ssh”文件夹是700 权限。如果权限有问题,会造成SSH 访问失败。
chmod 700 /home/git/.ssh
chmod 600 /home/git/.ssh/authorized_keys
//12.禁止git用户SSH登录服务器,操纵服务器。(此条禁止后客户端不能自动发送sshkey的隐患,这里贴上参考链接https://github.com/codcodog/Blog/issues/93)
vim /etc/passwd
//将
git:......::/home/git:/bin/bash
//改成
git:......::/home/git:/usr/bin/git-shell
//13.第12条设置后此条也需要增加:复制git-shell-commands的目录
cp /usr/share/doc/git-1.7.4.4/contrib/git-shell-commands /home/git -R
chown git:developers /home/git/git-shell-commands/ -R
chmod +x /home/git/git-shell-commands/help
chmod +x /home/git/git-shell-commands/list
下面是客户端免登陆配置
//1.生成ssh-key
ssh-keygen -t rsa -C "[email protected]"
//2.这里有三个回车,第一个是自定义文件名,方便多个项目一个邮箱冲突问题,其他两个回车是设置密码,一般不用设置,直接回车
//3.将生成的用户文件夹下.shh文件夹的公钥发送给服务器
ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
或者使用root账号给其配置
scp ~/.ssh/id_rsa.pub [email protected]:/home/git_repository/.ssh/authorized_keys
//4.git克隆
git clone [email protected]:/home/git_repository.git
//5.下面就可正常git操作push ,pull
//向服务器远程仓库推送
git push [email protected]:/home/git_repository.git master
//拉取服务器最新的代码
git pull [email protected]:/home/git_repository.git master