Aquí es un poco de una lista de verificación:
- Está SSH habilitado en el servidor que está intentando conectarse?
- ¿Está GIT instalado en el servidor?
- ¿Tiene una configuración de repositorio Git en el servidor?
- ¿El repositorio tiene los permisos correctos y tiene el repositorio compartido habilitado en la configuración en el servidor?
¿Tiene las llaves ssh en el lugar correcto para GIT?
Sugerencias:
1: Ya que se puede conectar el uso de masilla, parece ssh está configurado bien.
2: Use masilla y conéctese al servidor. Escriba git --version
¿Obtiene una respuesta razonable? De lo contrario, deberá instalarlo en el servidor.
3: Intente configurar un nuevo repositorio en el servidor. Asumiendo que es un servidor de estilo * nix, use masilla y conéctese al servidor y cree un nuevo repositorio usando los siguientes comandos, asumiendo que tiene un directorio/home/código_origen. La línea de eco simplemente crea un archivo con un poco de texto, así que tenemos algo para empezar.
cd /home/source_code
mkdir test_repo
cd /home/source_code/test_repo
echo "first file" > t.txt
git init
git add .
git commit -m "Initial Import"
Así que ahora tenemos un repositorio con un archivo t.txt en él. Como regla general, nunca debe ingresar a un repositorio que contenga cambios en la copia de trabajo. El propósito de tener un repositorio en el servidor es para que las personas puedan acceder a él todo el tiempo. Hacemos un clon "simple" que es solo la base de datos git, de esa manera no hay posibilidad de ningún cambio de copia de trabajo. Es este clon "desnudo" que usaremos como el repositorio git central.
cd /home/source_code
git clone --bare test_repo/ test_repo.git
Ahora puede deshacerse del repositorio temporal que hemos configurado.
cd /home/source_code/
rm -rf test_repo
en su computadora local intentar la clonación de nuevo
git clone ssh://[email protected]:port/home/source_code/test_repo.git
4: Permisos: Esto no debe causar ningún problema con la clonación, ir a buscar o tirando, a menos que haya seleccionado una ubicación del repositorio que tampoco tienen acceso de lectura Si se obtiene un error de permiso denegado cuando se empuja entonces referirse a Permissions correction
5: Configuración pública/clave privada para GIT:
- Conectar al servidor con masilla
- Establecer permisos en el directorio ~/carpeta .ssh:
chmod 700 .ssh
- Establezca permisos en su ~ /.ssh/authorized_keys:
chmod 600 authorized_keys
- generar las claves
ssh-keygen -t dsa
- aceptar los nombres de archivo que quiere utilizar
- no introduce una frase de contraseña (solo entrar). Querrá volver a hacer esto con una frase de contraseña más adelante.
- agregar la clave de pub en el fichero authorized_keys:
cat id_dsa.pub >> .ssh/authorized_keys
- editar/etc/ssh/ssh_config y agregue la línea
PubkeyAuthentication yes
- reiniciar el demonio ssh
sudo /etc/init.d/ssh restart
- Copia
id_dsa
y id_dsa.pub
desde el servidor a su duro local unidad (use winscp o sftp o alguna herramienta similar) c: \ users \ userName \ .ssh directorio (esto es para vista la ubicación será un poco diferente para otras versiones de windows)
- Establezca tortoise git para que apunte a C: \ Archivos de programa \ Git \ bin \ ssh.exe (no masilla)
Tanto la línea de comando git como la tortuga git deben configurarse para que funcionen. Intente clonar nuevamente en su máquina local.
git clone ssh://[email protected]:port/home/source_code/test_repo.git
Ahora que quiera ir y repetir la configuración de las teclas con una frase de contraseña ....
hey gracias por la respuesta - sí, tienen en marcha del desfile y la clave se carga en él. la variable de entorno GIT_SSH (mediante /Git/setup.ini) se establece en la ruta como se indicó anteriormente. –
incluso cuando ejecuto git push ssh: // usuario @ host: puerto/ruta/a/myapp.git - acabo de recibir "fatal: el extremo remoto colgó inesperadamente" –
¿hay alguna forma de depurar en "GIT"? es decir, ¿traza o algo? cómo hacer esto en la salida? –