clonar git a través de ssh
Tengo un proyecto en el que creé un repositorio git:
$ cd myproject
$ git init
$ git add .
$ git commit
Quería crear un clon simple en otra máquina:
$ cd ..
$ git clone --bare myproject ssh://user@server:/GitRepos/myproject.git
Ejecuté el clon pero no imprimí ninguna respuesta. Inicié sesión en la máquina del servidor e intenté ver cómo se almacenan los archivos. La ruta /GitRepos estaba vacía, así que decidí hacer la clonación nuevamente:
$ git clone --bare myproject ssh://user@server:/GitRepos/myproject.git
Esta vez la respuesta fue:
fatal: la ruta de destino 'ssh://user@server:/GitRepos/myproject.git' ya existe y no es un directorio vacío.
Pero vi que el camino estaba vacío.
Que está pasando aqui ?
Posiblemente esto no esté relacionado directamente con la pregunta; pero un error que acabo de cometer y que veo en el OP es la especificación de la URL ssh://user@server:/GitRepos/myproject.git
, es decir, tiene dos puntos :
y una barra diagonal /
después, lo que indica una ruta absoluta.
Luego encontré Git clone, ssh: No se pudo resolver el nombre de host – git, desarrollo – Nicolas Kuttler (ya que ese era el error que recibía, en git
la versión 1.7.9.5), y noté:
El problema con el comando que usé inicialmente fue que intenté usar una sintaxis similar a scp.
... ¡que también era mi problema! Entonces, básicamente , git
usasssh
ssh://[email protected]/absolute/path/to/repo.git/
- sólo una barra diagonal para la ruta absoluta en el servidor[email protected]:relative/path/to/repo.git/
- solo dos puntos (no debe tener lassh://
ruta relativa en el servidor (relativa al directorio de inicio deusername
la máquina del servidor)
Para repositorios en GitHub, intente:
git clone ssh://[email protected]/<user>/<repository name>.git
Para configurar git para clonar a través de ssh, consulte:
Generar claves SSH y agregar su clave generada en Configuración de cuenta -> Claves SSH
Clonación con SSH
Debe ejecutar el comando de clonación en lo que llama servidor. Pero apuesto a que no estás ejecutando un servidor ssh en tu cliente local, por lo que de todos modos no funcionará. Le sugiero que siga este enfoque (consulte el manual porque estoy haciendo esto de memoria)
- Inicie sesión en la máquina del servidor.
- Crea un repositorio simple usando
git init --bare
- En la máquina cliente, puede enviar su repositorio al servidor.
git remote add origin ssh://user@server:/GitRepos/myproject.git
seguido porgit push origin master
Descargo de responsabilidad: esto es solo una copia de un comentario de bobbaluba hecho más visible para futuros visitantes. Me ayudó más que cualquier otra respuesta.
Tienes que eliminar el ssh://
prefijo cuando lo uses git clone
como ejemplo.
git clone [email protected]:owner/repo.git
Una manera fácil de solucionar este problema,
prueba esto.
Paso 1:
ls -al ~/.ssh
Paso 2:
ssh-keygen
(usando la tecla Intro para el valor predeterminado) Paso 3: configurar el archivo de configuración
vim /c/Users/Willie/.ssh/config
Host gitlab.com
Nombre de host gitlab.com
Usuario git
IdentityFile ~/.ssh/id_rsa
Etapa 4:
git clone [email protected]:<username>/test2.git
Paso 5:
Cuando haya terminado el Paso 4
1.el archivo test2.git se descargará
2.obtendrá el nuevo archivo (known_hosts) en ~/.ssh
PD: Yo mismo creo id_rsa e id_rsa.ub y los entrego al servidor de Gitlab. usando ambas claves para cualquier lado del cliente (Windows y Linux).