Creé un nuevo repositorio y me encuentro con un extraño error. He usado Git antes en Bitbucket, pero acabo de formatearlo y ahora parece que no puedo hacer que Git funcione. Después de hacer una confirmación, tuve que agregar mi correo electrónico y mi nombre a los globales, pero luego se confirmó muy bien.
Cuando trato de usar el comando
git push origin master
No funciona. Recibo este mensaje:
$ git push origin master
Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
Estoy perdido aquí. Mi amigo con quien estoy compartiendo este repositorio, accedió bien y lo presionó muy bien, pero parece que no puedo hacer que funcione.
Respuestas:
Escribir esto para aquellos que recién comienzan con Git y BitBucket en Windows y que no están tan familiarizados con Bash (ya que este es un problema común y un resultado de Google de alto rango al buscar el mensaje de error dentro de la pregunta).
Para aquellos a quienes no les importa HTTPS y que buscan una solución rápida, desplácese hasta el final de esta respuesta para obtener instrucciones en FOR THE LAZY
Para aquellos que buscan resolver el problema real, siga las instrucciones a continuación:
Solucionar el problema de SSH lo más rápido posible
Este es un conjunto de instrucciones derivadas de la URL vinculada por VonC. Fue modificado para ser lo más resistente y sucinto posible.
No escriba las
$
líneas o ninguna que no comience$
($
esto significa que es algo que escribe en GitBash).Abrir GitBash
Establezca su información global si aún no lo ha hecho:
Verifique OpenSSH:
¿Ves algo así?
Vea si ya ha generado las claves:
Si hay dos archivos, puede omitir el siguiente paso.
Deje todo como predeterminado, ingrese una frase de contraseña. Ahora debería ver resultados con este comando:
Busque un archivo de configuración existente:
Si obtiene un resultado, consulte este archivo para obtener información errónea. Si no existe ningún archivo, haga lo siguiente:
Confirmar los contenidos:
Compruebe que está iniciando el agente SSH cada vez que ejecuta GitBash:
start_agent
, este paso ya se ha completado.Ingrese lo siguiente en GitBash para crear su archivo .bashrc:
Verifique que el archivo se haya creado correctamente (el suyo solo debe diferir donde aparezca "su nombre de usuario"):
.bashrc
no se ejecuta de forma predeterminada,.bash_profile
es. Para solucionar esto, coloque este fragmento en su.bash_profile
:[[ -s ~/.bashrc ]] && source ~/.bashrc
Si no ingresó una frase de contraseña, habría visto algo como esto al iniciar GitBash:
Y lo siguiente debería devolver resultados:
Sin embargo, si obtiene lo siguiente de
ssh-add -l
:No generó el agente SSH y su .bashrc es probablemente la causa.
Si, al iniciar GitBash, ves esto:
Eso significa que olvidó escapar de $ con a \ al hacer eco en el archivo (es decir, las variables se expandieron). Vuelva a crear su .bashrc para resolver esto.
Verifique que el agente se esté ejecutando y que se hayan agregado sus claves:
Debería devolver algo similar a esto:
Ejecute el siguiente comando para obtener su clave pública:
(debería devolver algo que comience con "ssh-rsa ......"
ssh-rsa
bit inicial y el== [email protected]
bit final )CTRL+A
luegoCTRL+C
para copiar la clave pública nuevamente en su portapapeles.Configure su clave privada con BitBucket realizando los siguientes pasos:
Global Public Key
por la etiquetaUna
Global Public Key
entrada ahora debería estar visible en su lista de claves.Revisa tus controles remotos:
Cambie a la URL de SSH:
Verifique que las cosas estén funcionando:
Debería ver algo como esto:
¡HECHO!
Puede optar por usar HTTPS en lugar de SSH. Tendrá que escribir su contraseña durante las operaciones remotas (se almacena en caché temporalmente después de que la escriba una vez). Aquí es cómo puede configurar HTTPS:
Para los perezosos
Debe solucionar el problema de SSH como lo describe VonC; sin embargo, si tiene prisa por comprometerse y no tiene las herramientas / tiempo / conocimiento para generar una nueva clave pública en este momento , establezca su origen en la alternativa HTTPS:
Usando una herramienta GUI como TortoiseGit o herramientas de línea de comando .
Aquí está la documentación de esta URL de origen alternativa.
Línea de comando para agregar un origen si no existe:
Línea de comando para cambiar un origen existente:
NOTA: su nombre de cuenta no es su correo electrónico.
También es posible que desee configurar su información global:
Luego intente presionar nuevamente (no es necesario comprometerse nuevamente)
fuente
~/.bashrc
pero aún cuando ejecuta el comando.ssh-all -l
Todavía se muestra.No agent
En ese caso, intente este comandossh-agent /bin/bash
y esoInitializing new SSH agent...
Este error también ocurre si olvidó agregar la clave privada
ssh-agent
. Haz esto con:fuente
Reformateado significa que probablemente eliminó sus claves ssh públicas y privadas (en ~ / .ssh).
Debe regenerarlos y publicar su clave ssh pública en su perfil de BitBucket, como se documenta en " Usar el protocolo SSH con Bitbucket ", después de " Configurar SSH para Git con GitBash ".
Cuentas-> Administrar cuentas-> Claves SSH:
Luego:
Imágenes de " Integración de Mercurial / BitBucket con el software JetBrains "
fuente
Resolví esto quitando el control remoto usando el comando:
y luego traté de agregar control remoto usando https url en lugar de ssh
Pide credenciales de github. Ingrese las credenciales e intente presionar para usar usando:
fuente
Yo tuve el mismo problema. Mis claves SSH se configuraron correctamente. Solucioné este problema así.
Después de crear un nuevo proyecto en Bitbucket, use clone. Ingrese el comando de clonación en la terminal y debería clonar un proyecto vacío en su computadora. Después de eso, puede copiar sus archivos a este directorio y comenzar a comprometerse y empujar a bitbucket.
fuente
git remote add
proceso simplemente no funcionó hoy; recibí el error de autenticación al intentar presionar, pero eliminar .git y luego usargit clone
y volver a copiar mi fuente (solo un README.md) funciona bien. Gracias Rafael. Ciertamente no hubiera pensado probar eso si no fuera por tu respuesta.mkdir /tmp/JUNK; cd /tmp/JUNK; git clone ...; cd ..; rm -rf JUNK
Solo necesito el archivo de configuración en ~ / .ssh directorio
ref: https://confluence.atlassian.com/bitbucket/set-up-ssh-for-git-728138079.html
agregue la siguiente configuración en el archivo de configuración
fuente
Dos pequeñas aclaraciones que podrían salvar a alguien la confusión por la que pasé:
1 - Las URL de conexión difieren para HTTPS y SSH
Cuando se conecta a través de https, usa
sin embargo, cuando se conecta a través de SSH, el nombre de la cuenta siempre es "git"
Intentar conectarse a SSH con el nombre de su cuenta en el frente dará lugar al error que recibió el póster original. Así es como puede hacer la prueba de conexión a git @, luego intente por error con su nombre de usuario y vea un error.
2 - Las claves SSH a través de las cuentas del equipo quedarán en desuso en 2017
Si está configurando claves SSH en cuentas de equipo, recomiendan cambiarlas a cuentas personales. Un consejo útil para evitar e
fuente
Si está usando SourceTree (estoy usando 2.4.1), encontré una forma más simple de generar una clave SSH y agregarla a mi configuración de Bitbucket. Esto resolvió mi problema.
Recibí un correo electrónico de confirmación de Bitbucket de que se había agregado una clave SSH a mi cuenta.
Como referencia, en macOS, usando Terminal, puede usar el siguiente comando para ver las claves generadas para su dispositivo. Aquí es donde se almacena la clave que generó.
Como otros han dicho, esta documentación me ayudó: Usar el protocolo SSH con Bitbucket Cloud
fuente
Realice el ssh como en el tutorial de Atlassian y asegúrese de que la clave privada se pegue en el perfil, no en el repositorio :)
fuente
Atlassian tutorial
? ¿Cuáles son los pasos para pegar la clave en el perfil y cómo sé si está pegada en el repositorio?Obtuve este mismo error para un repositorio: de repente, todos los demás funcionaban y todavía funcionan bien cuando intento empujar confirmaciones. El problema parecía estar en la clave SSH (como ya sabe por los comentarios anteriores): en bitbucket, vaya a y
View Profile
luego haga clicManage Account
.En el lado izquierdo, haga clic en y
SSH Keys
luego agregue el que tiene en su sistema en el directorio ~ / .ssh /.Si aún no tiene uno generado, use las instrucciones de una de las publicaciones, pero asegúrese de usar el archivo id_dsa.pub predeterminado o uno personalizado, y luego requerirá la
-i
opción con la ruta a la clave cuando conectar es decirUna vez que haya agregado su clave local a su cuenta en bitbucket, podrá comenzar a interactuar con su repositorio.
fuente
Encontré que la solución que mejor funcionó para mí fue dividir el empuje en trozos más pequeños.
y eliminar los archivos de imagen de captura de pantalla grandes (10mb +) de las confirmaciones
La seguridad no fue un problema al final más sobre los límites de los archivos bin
fuente
Este error también aparece cuando el repositorio no existe. Intenté todas las respuestas hasta que vi que al nombre del repositorio le faltaba un guión
fuente
Por errores:
[error] acceso al repositorio denegado. El acceso a través de una clave de implementación es de solo lectura. fatal: no se pudo leer desde el repositorio remoto. Asegúrese de tener los derechos de acceso correctos y de que exista el repositorio.
[error] fatal: no se pudo leer desde el repositorio remoto.
[error] fatal: no se puede encontrar el ayudante remoto para 'https'
Resolví siguiendo estos pasos:
Primero instale estas dependencias:
Luego elimine git:
Ahora compila e instala Git en la última versión, en este caso:
Luego para la configuración:
Y finalmente instalar así:
eso es todo, ahora configura tu repositorio con https:
si ha configurado una clave ssh en su servidor remoto, debe eliminarla.
fuente
Recibí este error
Entonces lo intenté
Trabajó sin comillas.
fuente
Encontré que la línea de comando git no me gustaba que mi concurso generara claves (Windows 10).
Ver mi respuesta en Serverfault
fuente
Estoy usando macOS y aunque configuré mi clave pública en bitbucket la próxima vez que intenté presionar, obtuve
Lo que tenía que hacer era el Paso 2. Agregue la clave al agente ssh como se describe en la guía de configuración de claves SSH de Bitbucket y especialmente el tercer paso:
Espero que ayude a un usuario de Mac con el mismo problema.
fuente
Esto probablemente es causado por tener múltiples claves SSH en el agente SSH (y / o BitBucket). Verifique la documentación de Atlassian para la solución para esto
fuente
Tuve este problema y pensé que estaba loco. He estado usando SSH durante 20 años. y git sobre SSH desde 2012 ... pero ¿por qué no podría recuperar mi repositorio de bitbucket en la computadora de mi casa?
bueno, tengo dos cuentas de bitbucket y tenía 4 claves SSH cargadas dentro de mi agente. incluso si mi .ssh / config se configuró para usar la clave correcta. cuando ssh estaba inicializando la conexión, los estaba usando en orden cargado en el agente. así que me estaba registrando en mi cuenta personal de bitbucket.
luego aparece un error prohibido al intentar obtener el repositorio. tiene sentido.
Descargué la llave del agente
ssh-add -d ~/.ssh/personal_rsa
entonces podría buscar los repositorios.
... Más tarde descubrí que puedo forzarlo a usar solo la identidad especificada
No sabía sobre esa última opción
IdentitiesOnly
de la documentación de bitbucket en sí
https://blog.developer.atlassian.com/different-ssh-keys-multiple-bitbucket-accounts/
fuente
Sólo inténtalo
fuente