A, servidor git: Prepare cada software necesario gitosis dependientes
1, confirmar la existencia de OpenSSH? Si no está presente, el siguiente comando para instalar
[root @ yjweb ~] # yum install openssh-server openssh-clients openssh
2, instalar git
[root @ yjweb ~] # yum install git
GIT determinar si la instalación se ha realizado correctamente?
[root @ yjweb ~] # git --version Git versión 2.18.2
3, instalar la herramienta pitón
[root @ yjweb ~] # yum install -y python2 python2-setuptools
Comprobar setuptools del pitón se ha instalado correctamente?
[root @ yjweb gitosis] # python2 -c "setuptools de importación"
Si no, esto significa que la instalación se ha realizado correctamente
Si se les da salida, representa la instalación falla
Nota: Para el uso python2 aquí
Debido a la inicialización gitosis necesita python2,
Si utiliza python3 se quejará
Dos, servidor git: Creación de un servicio dedicado Git para gestionar usuarios
1. Crear un usuario git
[root @ yjweb ~] # groupadd git [root @ yjweb ~] # useradd -g git [root @ yjweb ~] # grep git / etc / passwd git: x: 1003: 1003 :: / home / git: / bin /golpetazo
2, para asegurar que el usuario tiene acceso de escritura al directorio git
[root @ yjweb ~] # chown git: git / home / git [root @ yjweb ~] # ll / home / | grep git drwx ------ 2 git git 62 Mar 9 17:00 git
Tres, el servidor git: gitosis instalación
1, el clon Gitosis el proyecto a una carpeta fuente local
[fuente yjweb root @] # git clone https://github.com/res0nat0r/gitosis.git clonación en 'gitosis' ... a distancia : Enumerar objetos: 734, hecho . remota : Total 734 (Delta 0), reutilizados 0 (Delta 0), paquete de -reused 734 objetos de Recepción : 100% (734/734), 147.40 KiB | 29.00 KiB / s, hecho . La resolución de deltas : 100% (458/458), hecho .
2, la instalación
[root @ fuente yjweb] # cd gitosis / [root @ yjweb gitosis] # python2 setup.py install
Nota: Para el uso python2 aquí
Debido a la inicialización gitosis necesita python2,
Si utiliza python3 se quejará
Nota: Si aparece el siguiente mensaje indica que la instalación se ha realizado correctamente
Procesamiento final dependencias para gitosis == 0.2
Cuatro, servidor git: directorio .ssh y autoridad generará:
[root @ yjweb ~] # mkdir -p /home/git/.ssh [root @ yjweb ~] # chmod 700 /home/git/.ssh [root @ yjweb ~] # /home/git/.ssh/authorized_keys táctiles [root @ yjweb ~] # chown -R git.git / home / git
Descripción: authorized_keys se utiliza para guardar el proyecto para la gitosis clave pública
V. Desarrollo de Clientes: generar una clave y cargado en el servidor
Descripción: Nuestra máquina de desarrollo de clientes es una máquina con Ubuntu 19.10
1, cree una clave ssh
Descripción: El cliente que aquí hay una máquina de Ubuntu
root @ Kubuntu: ~ # ssh-keygen -t rsa
Operación durante todo el camino sin la necesidad de introducir una contraseña
2, comprueba si la generación del par de claves
Después de la terminación del par de claves generado puede ser visto desde el directorio .ssh
root @ Kubuntu: ~ # ls .ssh / id_rsa id_rsa.pub known_hosts
Id_rsa.pub es la clave pública de la que queremos usar
3, la clave pública generada para cargar el servidor de Git
Con SCP o una herramienta FTP, copiar id_rsa.pub al servidor git
El directorio / tmp
Aquí se supone dirección IP del servidor Git es: 123.124.125.126, dirección de puerto es 12345
root @ Kubuntu: ~ # scp -P 12345 .ssh / id_rsa.pub [email protected]: / tmp / operador del sistema @ 123.124.125.126' s contraseña: id_rsa.pub 100% 566 70.3KB / s 00:00
Seis, servidor git: gitosis inicialización
1, cambie a la cuenta git para ver la carga de clave pública del cliente si hay o no?
[root @ yjweb ~] # Do git [git @ yjweb root] $ ll / tmp / id_rsa. pub -rw-r - r-- 1 operador del sistema operador del sistema 566 9 Mar 18:46 /tmp/id_rsa.pub
2, inicializar el proyecto gitosis
[git @ yjweb root] $ gitosis-init </ tmp / id_rsa. pub inicializado vaciar repositorio Git en /home/git/repositories/gitosis-admin.git/ Reinitialized existente en el repositorio Git /home/git/repositories/gitosis-admin.git/
3, se inicializan al final lo que había hecho?
Gitosis creado un catálogo y un catálogo de biblioteca
[Git @ yjweb ~ ] $ ls
Gitosis repositorios
contenido escrito en el directorio authorized_keys id_rsa.pub bajo .ssh
[git @ yjweb ~] $ cd. ssh [git @ yjweb . ssh] $ más authorized_keys # ## autogenerada por gitosis, no edite comando = "gitosis-servir root @ kubuntu", sin reenvío de puertos, no-X11-expedición, sin agente de expedición, sin Pty ssh- RSA AAAAB3NzaC1yc2E ...
Cliente Siete desarrollo: proyecto-admin gitosis Clon
root @ Kubuntu: ~ # git clone ssh: //[email protected]: 12345 / gitosis-admin.git
positivo clonado en 'Gitosis-ADMIN' ...
a distancia: Enumerar Objetos :. 5, hecho.
remoto: un conteo de objetos: 100% (5/5), hecho.
remoto: Compresión de objetos :. 100% (4/4), hecho
a distancia: el total 5 (Delta 0), el reutilizada 0 (0 Delta).
objeto recibido: 100% (5/5 ), se ha completado.
Gitosis-administrador puede ver que este proyecto se ha descargado en la máquina local del cliente
root @ Kubuntu: ~ # ls gitosis trabajo -admin node_modules package.json
Ocho clientes para ver la configuración remotas Gitosis-administrador de proyectos
root @ Kubuntu: ~ / gitosis-admin # git remoto - v origen ssh : // [email protected]: 12345 / gitosis-admin.git (fetch) origen ssh : // [email protected]: 12345 / gitosis- admin.git (push)
Nueve, ver la versión local de centos
[webop @ yjweb ~] $ cat / etc / redhat- liberación
liberación de CentOS Linux 8.0.1905 (Core)
Diez, el uso gitosis
Ver la siguiente: