Construir su propio servidor Git bajo Ubuntu y CentOS

Utilice el repositorio remoto Github, proyecto público Github es libre, pero si usted no quiere que otros vean necesitará ser cargada su proyecto. Yo no quiero pagar, entonces tenemos que construir su propio servidor Git como un almacén privado.


  • servidor de Git creada en virtud de Ubuntu

  1. Ver la versión GIT, instalación de Ubuntu y CentOS generales del sistema se instalará automáticamente
 $ git --version  
git version 1.7.1 
  1. Si no es así, utilizar apt-get instalar git instalación del comando sudo
 $ sudo apt-get install git
  1. Nuestra mejor para configurar un usuario git dedicado y establecer una contraseña, un código especial de gestión y git gestión de servicios
  sudo useradd -m git  
 sudo passwd git(change to yours)  

Nota: El comando anterior genera un nombre de usuario y la contraseña son a la vez cuenta Git, también puede establecer la contraseña, no debe configurar primero, de lo contrario habrá problemas más adelante, (si no hay ninguna contraseña, sin ssh-clave cuando se no se puede comprobar, no se puede clonar) puede también crear su propio nombre de usuario, siempre y cuando otras operaciones relacionadas (como clon, empujar, tirar) para especificar si el nombre de usuario que (este artículo a todos a Git, por ejemplo), - opción m está permitido en el hogar generar directorio de la carpeta de inicio del usuario, nuestro repositorio de código se dispone en la carpeta principal.

  1. A continuación, cree una carpeta de repositorios Git como nuevo repositorio git en el directorio personal del usuario, y están equipadas con la seguridad más básica para el almacén - el control de acceso
  sudo mkdir /home/git/repositories # 最好使用repositories作为文件夹名称,这样可以简化后面的操作  
sudo chown git:git /home/git/repositories  
sudo chmod 755 /home/git/repositories  
  1. Por lo tanto, un servidor Git sencilla ya sea en su lugar, puede crear usted mismo un proyecto de prueba simple. Con el fin de facilitar las operaciones siguientes, cambiamos al primer usuario git
  su git
  1. En repositorios holamundo un nuevo directorio (almacén), y cambie al directorio, donde inicializar el almacén vacío
 mkdir helloworld  
cd helloworld 
git --bare init  

Se observa aquí la próxima , inicializar el almacén, el mejor uso de git init -bare
este comando puede ahorrar un montón de problemas, pero no use: init git en la diferencia entre estos dos comandos que miro otro blog : http://blog.csdn.net/qq_29232943/article/details/60971061

Si utiliza la inicialización init git, el directorio también incluye un árbol de trabajo repositorio remoto.
Cuando el empuje repositorio local a un repositorio remoto, si el repositorio remoto es empujar una rama (si no, entonces empujar la rama, no hay ningún problema), entonces el resultado no va a empujar la reacción en el árbol de trabajo, es decir, directorio de un repositorio remoto bajo el archivo correspondiente o el contenido anterior.
Solución: el servidor debe ejecutar el comando: git reset -difícil para ver el contenido del empuje.

Problema 2
Git: el maestro solución push equivocada -> maestro (rama está actualmente desprotegido)

Esto se debe a las necesidades de funcionamiento por defecto rechazo git push de los engastes modificar el servidor .git / config añadir el siguiente código:

[receive]
denyCurrentBranch = ignore

bien, un establecimiento almacén vacío del bien, máquina de git con otro instalado (por ejemplo, las ventanas de la máquina de desarrollo) de prueba, para ver imbécil dirección IP del servidor a través del comando ifconfig -a, para distinguir su dirección IP, su servidor anotó una red cableada, la dirección IP para el eth0 de entre, si la red inalámbrica es la dirección inet wlan0, se supone que el servidor IP aquí que utilizó anteriormente es 192.168.8.34

 $ git clone git@192.168.8.34:/home/git/repositories/helloworld
Cloning into 'helloworld'...
The authenticity of host '192.168.8.34 (192.168.8.34)' can't be established.
RSA key fingerprint is 2b:55:45:e7:4c:29:cc:05:33:78:03:bd:a8:cd:08:9d.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.8.34' (RSA) to the list of known hosts.
[email protected]'s password:  

Descripción: Aquí hay dos cosas a tener en cuenta:
En primer lugar , cuando se utiliza por primera vez el clon de comandos de Git o conexión de empuje GitHub, recibirá una advertencia:

The authenticity of host 'github.com (xx.xx.xx.xx)' can't be established.
RSA key fingerprint is xx.xx.xx.xx.xx.
Are you sure you want to continue connecting (yes/no)?

Esto se debe a Git utiliza la conexión SSH, y cuando la primera conexión SSH comprobación del servidor Clave GitHub, tiene que confirmar si la información de huellas dactilares de Key GitHub GitHub realmente desde el servidor (es decir, su clave ssh, la clave pública carga en el servidor, la clave privada a nivel local, cuando el primer clon para verificar esta información, después de la verificación tiene éxito, generará un archivo known_hosts, que es la información de conexión, el futuro no será verificado), introduzca sí presiona enter . Git es la salida una advertencia, diciendo que hay que añadir GitHub es clave para una lista de confianza de esta máquina en el:

Warning: Permanently added 'github.com' (RSA) to the list of known hosts.

Esta advertencia sólo aparecerá una vez, esta última operación no tendrá ningún tipo de advertencia.
Si está realmente preocupado por las personas que presentan como servidor de GitHub, antes de poder entrar en el control de sí consistente de información de huellas dactilares GitHub de claves RSA se da en el marco de la SSH.

En segundo lugar , este le pide que introduzca una contraseña para clonar, por supuesto, si conoce la contraseña, puede escribir una contraseña para el clon, pero de una manera más común es el uso de clave pública SSH para completar la verificación.


Algunos prueba de funcionamiento básico en una máquina de desarrollo: para este proyecto añadir algunos archivos, a continuación, se comprometen, a continuación, empuje, si además de varias contraseña de entrada del usuario git, todos los demás normal, entonces explicar la instalación y la configuración anterior han sido un éxito .

En el ensayo anterior, no se encuentra en el clon de un camino largo, es fácil de error? Se requieren varios pasos para introducir la contraseña del usuario git (clon, empujar), no es molesto , pero de acuerdo con el ritmo de desarrollo para cada miembro adicional, usted tiene que decirle la contraseña del usuario git no es engorroso e inseguro?
Por lo tanto, si se puede clonar un tiempo determinado, siempre y cuando el nombre del proyecto, el clon empuje autenticación Automatizar / / tirón, y lo mejor es dar a los diferentes usuarios diferentes permisos a diferentes almacenes, tanto mejor! La siguiente configuración puede manejar todo esto, vamos a la gestión repositorio git más fácil, más cómodo!

En primer lugar, la autenticación de un problema, ya hemos mencionado intercambio de datos git y la operación se basan en ssh, por lo que, naturalmente, la autenticación puede ser resuelto mediante la configuración de ssh . la autenticación SSH es administrado por llave, que incluye una clave pública (el servidor) y una clave privada (propia de retención), cada uno correspondiente a la clave pública de una clave privada, sólo la clave privada correspondiente a cada uno de una clave pública. . . . Algunas palabras se omiten aquí. . . . Por lo que una forma sencilla de resolver el autenticación es automática: cada persona necesita acceder al repositorio de código, generar su propio público y privado a través de las teclas, la clave pública al servidor, el administrador del servidor ssh-keygen en su máquina Añadir la clave pública del usuario al servidor para cambiar git de archivos del usuario .ssh / authorized_keys

Instalar servicio OpenSSH


Comando para instalar servidor SSH

sudo apt-get install openssh-server

Por orden, ver se inicia el servicio SSH.

ps –e|grep ssh

Inicio del servicio SSH.
Introduzca el comando: reinicie el servicio SSH
reinicio del servicio sshd sshd servicio no reconocido

ssh service 在ubantu叫 ssh  
所以重启ssh  
sudo service ssh restart  

Es en CentOS sshd

service sshd restart 

Comando: service sshd start para iniciar el servicio | comando: service sshd parada para detener el servicio
al iniciar el sistema introduzca: -antp -an | grep sshd empezar a ver si 22 puertos (se puede omitir).
Cómo configurar el servicio de SSH para el arranque?
◆ Introduzca el comando: sshd chkconfig a.
Nota: Si el chkconfig sshd es fuera de arranque de SSH prohibido.

- crear un marco / .ssh, y para establecer los permisos apropiados. Esto es importante si el permiso es demasiado abierta para que ellos mismos protegidos por SSH no tiene sentido.

$ su - git
$ mkdir .ssh && chmod 700 .ssh 
$ touch .ssh/authorized_keys 
$ chmod 600 .ssh/authorized_keys 

authorized_keys archivo contiene todos los desarrolladores de clave pública SSH, puede abrir permisos les permiten trabajar en su proyecto Git. Tienen que crear su propio par de claves SSH y su clave pública para ti. Copiar la clave pública al archivo authorized_keys en el gituser usuario

Crear sus propios clientes en la clave SSH locales

En primer lugar, en el directorio personal del usuario para ver si hay directorio .ssh, si la hay, y luego ver si hay id_rsa y id_rsa.pub estos dos archivos en este directorio, si ya tiene, puede saltar directamente a la siguiente etapa. Si no es así, abra el Shell (abierta Git Bash bajo Windows)
establecer un usuario local para configurar git

$ git config --global user.name "username"
$ git config --global user.email "[email protected]"
$ ssh-keygen -t rsa -C "[email protected]"  

Es necesario que las direcciones de correo electrónico en su propia dirección de correo electrónico, y luego en todo el perímetro, utilizar el valor por defecto, debido a esta clave no se utiliza para fines militares, lo que no hay necesidad de establecer una contraseña.
Si todo va bien, se puede encontrar en el directorio .ssh el directorio personal del usuario, hay dos archivos id_rsa y id_rsa.pub, tanto Clave SSH es el par de claves secretas, id_rsa clave privada, no puede filtrarse, id_rsa.pub es la clave pública, puede decirle a nadie con seguridad.
Descripción : Ver git todos los elementos de configuración

$ git config -l  

servidor de Git abre la autenticación RSA
y luego se puede ir a agregar su clave pública para verificar la información en el servidor de Git. En primer lugar necesidad de / etc / ssh / sshd_config se abrirá en el servidor de autenticación RSA Git, a saber:

sudo vim /etc/ssh/sshd_config
RSAAuthentication yes     
PubkeyAuthentication yes     
AuthorizedKeysFile  .ssh/authorized_keys

Sólo tienes que copiar la clave pública generada en, habrá un miembro para integrarse en, estar en authorized_keys en adicional, añadido a continuación, el clon de nuevo cuando o después de que el empuje cuando no es necesario introducir la contraseña:

Zhu@XXX/E/testgit/8.34
$ git clone git@192.168.8.34:/home/git/repositories/helloworld
Cloning into 'helloworld'...
warning: You appear to have cloned an empty repository.
Checking connectivity... done.

shell para inhabilitar la entrada del usuario git
por razones de seguridad, el segundo paso es crear un usuario git no se le permite conectarse cáscara, lo cual puede hacerse mediante la edición del archivo / etc / passwd. Encontrar una línea como la siguiente:

sudo vim /etc/passwd
git:x:1001:1001:,,,:/home/git:/bin/bash  

Finalmente, después de dos puntos leyó:

git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell  

De esta manera, los usuarios pueden utilizar git git normalmente a través de SSH, pero no se puede iniciar sesión cáscara, porque especificamos para el git-shell cada vez que un usuario de inicio de sesión de salida de forma automática.

La gestión y la autoridad pública
si el equipo es pequeño, poner a todos en un archivo /home/git/.ssh/authorized_keys recogidos clave pública del servidor es factible. Si el equipo tiene varios cientos de personas, por lo que no sería capaz de jugar, entonces usted puede utilizar para gestionar los derechos públicos y Gitlab, Gitlab Github similares


Instalar servidor de Git bajo centos


Tenga en cuenta que el comando bajo Ubuntu y diferencias similares
yum install git
versión git actualización bajo CentOS http://www.cnblogs.com/boxuan/articles/6434109.html


Gracias a los siguientes enlaces ayuda
Referencia: http://freeloda.blog.51cto.com/2033581/1410562
Referencia: http://blog.csdn.net/xsl1990/article/details/25486211
Referencia: HTTP: //blog.csdn .net / wave_1102 / artículo / detalles / 47779401

Publicados 175 artículos originales · ganado elogios 76 · Vistas de 230.000 +

Supongo que te gusta

Origin blog.csdn.net/qq_29232943/article/details/56835554
Recomendado
Clasificación