配置本地ssh通过密钥链接阿里云服务器,及在服务器搭建git仓库
配置环境
server:centerOS 7
client:macOS 10.12
1.非对称加密
相对于对称加密所需要的一个密钥而言,非对称加密存在公钥和私钥,公钥存放在服务器,私钥存放在客户端
1.Mac下通过命令生成的private,public密钥会存放在~/.ssh目录下,其中后缀为.pub为公钥
2.目录下的known_hosts存放密钥第一次认证是的记录
3.管理多个密钥
1 2 3 4 5 6 7 8
| $ssh-keygen --help $ssh-keygen -t rsa -C "comment" $ll ~/.ssh
|
- ssh-add命令把专用密钥添加到 ssh-agent 的高速缓存中
1 2 3 4 5 6 7 8
| $ssh-add <path/to/privateKey> $ssh-add -l $ssh-add -d <path/to/privateKey>
|
方法一:
在ssh链接是加上指定的identity_file
1 2
| $ssh -i <path/to/identity_file> <user>@<ip>
|
方法二
通过ssh-add密钥添加到高速缓存,缺点电脑重启后会清空缓存
1 2 3 4
| $ssh-add <path/to/privateKey> $ssh <user>@<ip>
|
方法三
配置config文件,实现持久化(未实践)
2.ssh密钥登录linux
1 2 3 4 5 6 7 8
| $cat <path/publicKey> > ~/.ssh/authorized_keys $exit $ssh <path/to/identity_file> <user>@<ip>
|
3.git服务器
通过git init新建仓库,客户端提交代码到仓库。
需要注意的是客户端提交的项目并没有在git仓库映射,需要自己新建工作目录。
通过githooks实现自动化部署,及当客户端提交到远程服务器是不触发hooks,通过编写的脚本实现项目拷贝
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| $useradd git $cd <切换到希望创建工作区的目录> $git init --bare $chown -R git:git $cat <path/publicKey> > /home/git/.ssh/authorized_keys $git:x:1000:1000::/home/git:/usr/bin/git-shell $git clone git@115.28.222.133:<git/repository/path>
|
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
| $cd <path/to/dir> $mkdir <dir> $git clone <git/repository/path> $chown -R git:git <dir> --------start-------- #!/bin/sh unset GIT_DIR NowPath=`pwd` DeployPath="/var/www/html/testDeploy/sample" cd $DeployPath git pull origin master cd $NowPath exit 0 --------end-------- $chmod +x post-update
|
4.git链接
1 2 3 4 5 6
| $cd <git/server/path> $git init --bare <ptoject_name.git> $cd <project/path> $git clone /data/git/recharge_pro.git $git pull
|
本地项目初始git,上传
1 2 3 4 5 6
| $cd <project/path> $git init $git remote add origin git@<ip>:</git/project/path> $git add . $git commit -m '' $git Push
|
clone
1
| $git clone git@<ip>:</git/project/path>
|
参考
用 Git Hooks 进行自动部署
Centos7下搭建Git服务器端教程(二)
如何通过Git钩子自动部署(Push to Deploy)