git搭建私有仓库,搭建自己的持续交付环境 配置ssh密钥

之前写过一个git搭建私有仓库持续交付环境,当时是使用的帐号密码登陆的,今天有空我就顺便 给配置了 ssh登 陆。

git搭建就不一一的写了,直接上命令,如果要看详细的点击 git将代码发布到网站生产目录,布署生产环境 

yum install -y git   #安装git

useradd git  #添加一个git用户,用户名可以自己改

password git # 修改git用户密码

#修改git用户权限不能远程登陆,仅能使用git-shell
vi /etc/password

git:x:1003:1003::/home/git:/bin/git-shell

#git就算安装成功了。
====================================================
cd /var
mkdir gitdepot && cd gitdepot
mkdir xcwmoon.git && cd xcwoon.git
git init --bare
#创建xcwmoon.git仓库放在/var/gitdepot目录下 然后初始化这个仓库

===================================================================
vi post-receive

#以下是钩子内容,内容是啥意思就不说了,没啥好说的,就是shell脚本
#!/bin/sh
depot=/var/gitdepot/xcwmoon.git
www=/home/wwwroot/default/xcwmoon
unset GIT_DIR
cd $www
git add . -A && git stash
git pull origin master

#最后给这个钩子加一个执行权限

chmod +x post-receive

==============================================================
#这一步一定要有 记得一定要给 生产目录git权限,也就是 xcwmoon目录,否则钩子不能正常工作。
cd /home/wwwroot/default/xcwmoon
git clone /var/gitdepot/xcwmoon.git xcwmoon

接下来讲怎么配置ssh密钥,这里可以配置多个密钥

ssh的密钥登陆就不多讲了也是直接上代码,后面只讲怎么用配置git提交代码 。

#先安装openssh

yum install -y openssh

#新手保证不会出错请使用git用户登陆操作。 在登陆前请先将/etc/passwd文件里的 git用户的增加一个/bin/bash 否则登陆不了
#在家目录运行下面命令 一路回车不要输入任何东西。总共要按三次回车。
#如果不是git 用户生成 根据交互界面自己输入git的家目录路径

ssh-keygen -t rsa

#如果没有修改过文件名的话,接下来会生两个文件
id_rsa 与 id_rsa.pub
#接下来运行 
cat id_rsa.pub >> authorized_keys

#接下来运行 看清楚 不要改错了文件因为还有一个  ssh_config
vi /etc/ssh/sshd_config

AuthorizedKeysFile .ssh/authorized_keys
RSAAuthentication yes
PubkeyAuthentication yes
StrictModes no
PermitRootLogin yes
#PermitRootLogin without-password

#查看自己的配置文件上面几处重要的地方与这个保持一致就行。

#接下来是启动ssh

systemctl start(restart) sshd
#查看状态

systemctl status sshd
#如果没有启动只有自己找一下原因了


接下来配置本地的git

将服务器上git/.ssh目录下的  id_rsa 这个文件下载到本地。

我在本地装了git如果没有装的可以自己装一下,这样才能使用git命令.

本地当前用户的家目录下也有一个.ssh的目录,装了git的应该会有,如果没有可以自己创建一个。或者用ssh-keygen -t rsa 命令会自动创建的。

然后就是把从服务器下载下来的 id_rsa 复制到本地的.ssh目录下面,当然你可以给它改个名字。

然后你需要在.ssh目录下创建一个文件 config

文件内容

Host xcwmoon.com
    HostName 域名或IP地址
    User git
    #Port 22
    #PreferredAuthentications publickey
    IdentityFile  ~/.ssh/id_rsa
    IdentitiesOnly yes
    
#把这个复制到你自己的config文件中保存一下,对应的参数请改成你自己的。

然后说一下链接的时候要咋整

链接的时候请使用

git clone git@xcwmoon.com:/var/gitdepot/xcwmoon.git

它会自动去寻找私钥的。绿色背景地方是重点。

如果有报错 请查看  Permission denied (publickey,gssapi-keyex,gssapi-with-mic)



Tags linux php

留言(0)

评论