remote - git push al repositorio remoto "No se pudo leer desde el repositorio remoto"
git remote add ssh (4)
En este caso, usar openssh over masilla fue la clave.
Respuesta original (consejos para la depuración)
Puedo iniciar sesión a través de ssh con el usuario
git
.
Eso significa que esto funciona:
ssh git@serverIp
Usted tiene una variable HOME
definida, y ssh public / private keys ( id_rsa
/ id_rsa.pub
) en %HOME%/.ssh/
.
Esta pregunta sugiere una url diferente:
git remote set-url test git@serverIp:/home/git/test.git
Asegúrate de haber creado tu git repo como git (y no como root, cuando creaste la cuenta de git, como en esta pregunta ).
ssh git@serverIp "which git"
debería devolver la ruta del ejecutable git.
Compruebe también que todos los directorios principales tienen el bit x
(ejecución) correspondiente establecido para el usuario git
o el grupo gitgroup
, ejecutando ls -ld /home /home/git /home/git/test.git
.
Además, obtener más información para un comando git se puede hacer con:
-
git push --verbose
o: -
GIT_TRACE=2 git push test master
Si tiene una clave ssh privada con una contraseña, lo mejor sería probar primero esos comandos ssh con una clave ssh privada no protegida con contraseña, para ver si el problema persiste.
O bien, puede mantener esa clave ssh protegida con contraseña, pero vuelva a verificar su .bashrc
como en esta respuesta .
Para cualquier problema de conexión ssh (donde se necesita la contraseña de git), verifique:
-
/var/log/auth.log
, - una sesión de depuración sshd
En su caso, dado que funciona con ssh git@serverIp
(shell seguro interactivo), pero no con git (que abre un shell seguro no interactivo), eche un vistazo a este hilo , que hace referencia a este :
Cuando ssh se inicia con una línea de comandos, se inicia un shell no interactivo que no inicia sesión.
Sin embargo ...bash
no usa$BASH_ENV
en este caso, por lo que configurarlo en~/.ssh/environment
(por ejemplo, a/etc/profile
) no ayuda.
Lo que Bash hace es source/etc/bashrc
y~/.bashrc
.
Asegúrese de que /etc/profile
defina la ruta para git
, ya que una cuenta que no sea de inicio de sesión podría usarse aquí (este parece ser el caso aquí, ya que ssh git@serverIp "which git"
funcionó, y ssh git@serverIp "git --version"
debería también".
Pero compruebe también el problema correcto y pruebe un chmod 755
en /home
, /home/git
y /home/git/test.git
.
Busqué por un tiempo, pero no puedo encontrar una solución a mi problema.
Tengo un servidor al que me puedo conectar a través de ssh con el nombre de usuario git
y un repositorio git local.
Ahora quiero enviar mi repositorio local a uno nuevo creado en el servidor.
Aquí esta lo que hice:
- creó un repositorio de git en
/home/git/test.git
- inicializado el repositorio como desnudo
- agregado el repositorio remoto en la máquina local
git remote add test ssh://git@serverIp:/home/git/test.git
- ahora ejecuté el comando push:
git push test master
Siempre obtengo el
fatal: could not read from remote repository
Please make sure you have the correct access rights
and the repository exists.
Estoy trabajando en una máquina local con Windows 7 y quiero subir a un servidor Linux.
Puedo iniciar sesión a través de ssh con el usuario git
. También traté de hacer esto como el usuario root
(para que las cosas funcionen una vez) con el mismo resultado.
Nunca me preguntan por la password
ssh.
Realmente no sé lo que estoy haciendo mal.
Antes de llamar a esto un duplicado, busqué mucho para este problema y ninguno parecía hablar sobre el mismo problema.
actualizar:
- "which git" devuelve / usr / bin / git
- PATH echo incluye / usr / bin
- Los archivos id_rsa e id_rsa.pub están configurados y tienen Frase de contraseña
- ssh git @ serverIp que git-receive-pack también funciona y devuelve / usr / bin / git-receive-pack
- ssh git @ serverIp ls /home/git/test.git funciona
- todos los directorios relevantes son chmod 755
- git es el dueño del repositorio
- El archivo auth.log no obtiene nuevas entradas en el comando try probado
- GIT_TRACE = 2 git prueba de prueba maestro devuelve:
''C: / Archivos de programa (x86) / PuTTY / plink.exe'' ''-batch'' ''git @ serverIp'' ''git-receive-pack'' / '''' / home / git / test.git ''/' '''' fatal: No se pudo leer desde el repositorio remoto. Por favor, asegúrese de tener los derechos de acceso correctos y existe el repositorio.
Establezca la variable de entorno GIT_SSH en la ruta completa de TortoisePlink.exe
(puede que tenga que descargar TortoiseGit para esto) en lugar de plink.exe
de PuTTY. Esto permitirá que la ventana de diálogo emergente solicite cosas, es decir, confirme la huella digital o ingrese la contraseña. Si usa plink.exe
través de Git, no puede escribir respuestas a las solicitudes de plink.exe, que si hay alguna pregunta causará el error fatal que vio.
Personalmente tuve 2 problemas diferentes con esto:
plink
(que es usado por git en Windows) no acepta la clave privadaid_rsa
ya que está en formato OpenSSH 2 => Tuve que convertirlo (usandoputtygen
) al propio formato.ppk
PuTTY y adjuntarlo a través del cuadro de diálogo "Remotes
" de Extensiones de GitEspecifiqué la ruta a la carpeta de git incorrectamente, porque mi sesión de ssh estaba en chroot (podría ser una palabra incorrecta) y especifiqué que lo que era mi FTP "
root
" como "/
", mientras era "/home/www/username/
"en cambio".
Entendí todo esto, usando GIT TRACE=2
como se describe arriba y también usando procmon
para determinar la línea de comando exacta para plink
y luego jugar con ella, agregando la opción " -v
" ("verbose").
También puede verificar sus identidades SSH haciendo:
$ ssh-add -L
Tuve un problema similar. Había una clave incorrecta en mis identidades, no recuerdo por qué. Solo elimino todas mis identidades (quizás necesites agregar claves nuevamente):
$ ssh-add -D
Luego empujé / tiré sin problemas.