tipos - que es un repositorio git
No se puede enviar al repositorio de Git en Bitbucket (14)
Dos pequeñas aclaraciones que podrían salvar a alguien de la confusión que tuve:
1 - Las URL de conexión difieren para HTTPS y SSH
Cuando se conecta a través de https, usa
https://[email protected]/owner-account/repo-name.git
sin embargo, al conectarse a través de SSH, el nombre de la cuenta siempre es "git"
ssh://[email protected]/owner-account/repo-name.git
Intentar conectarse a SSH con el nombre de su cuenta al frente generará el error que recibió el póster original. Así es como puedes hacer la prueba de conexión a git @, luego, por error, intenta con tu nombre de usuario y ves un error.
2 - Las claves SSH a través de las cuentas del equipo quedarán obsoletas en 2017
Si está configurando claves SSH en las cuentas del equipo, recomiendan cambiarlas a cuentas personales. Un consejo útil para evitar e
Creé un nuevo repositorio y me encontré con un extraño error. He usado Git antes en Bitbucket, pero me reformateé y ahora parece que no puedo hacer que Git funcione. Después de hacer un commit, tuve que agregar mi correo electrónico y mi nombre a los globales, pero luego me comprometí perfectamente.
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 el que estoy compartiendo este repositorio, accedió bien y lo presionó, pero parece que no puedo hacerlo funcionar.
Encontré que la línea de comando de git no me gustaba las teclas generadas en el concurso (Windows 10).
Ver mi respuesta en Serverfault
Encontré que la solución que mejor funcionaba para mí era dividir el impulso en trozos más pequeños.
y eliminar los archivos de imagen de captura de pantalla grandes (10mb +) de los commits
La seguridad no era un problema al final más sobre los límites de los archivos bin
Escribiendo esto para los que acaban de empezar 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 alto rango de Google 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:
Solucionando el problema de SSH lo más rápido posible
Este es un conjunto de instrucciones derivadas de la URL enlazada por VonC. Fue modificado para ser lo más resistente y sucinto posible.
No escriba
$
ni ninguna línea que no comience con$
(el$
significa que esto es algo que escribe en GitBash).Abra GitBash
Configure su información global si aún no lo ha hecho:
$ git config --global user.name "Your Name"
$ git config --global user.email "[email protected]"
Compruebe si hay OpenSSH:
$ ssh -v localhost
OpenSSH_4.6p1, OpenSSL...
Ver algo así?
- Sí: Continuar.
- No: vaya a la sección FOR THE LAZY o siga el artículo vinculado de VonC.
Vea si ya ha generado las claves:
$ ls -a ~/.ssh/id_*
Si hay dos directorios, puede omitir el siguiente paso.
$ ssh-keygen
Deje todo como los valores predeterminados, ingrese una frase de contraseña. Ahora debería ver los resultados con este comando:
$ ls -a ~/.ssh/id_*
Compruebe si hay un archivo de configuración existente:
$ ls -a ~/.ssh/config
Si obtiene un resultado, verifique este archivo para obtener información errónea. Si no existe ningún archivo, haga lo siguiente:
$ echo "Host bitbucket.org" >> ~/.ssh/config
$ echo " IdentityFile ~/.ssh/id_rsa" >> ~/.ssh/config
Confirmar los contenidos:
$ cat ~/.ssh/config
Host bitbucket.org
IdentityFile ~/.ssh/id_rsa
- El único espacio antes de "IdentityFile" es obligatorio.
Compruebe que está iniciando el agente SSH cada vez que ejecuta GitBash:
$ cat ~/.bashrc
- Si ve una función llamada
start_agent
, este paso ya se ha completado. - Si no hay archivo, continúa.
- Si hay un archivo que no contiene esta función, estás en una situación difícil. Probablemente sea seguro agregarlo (usando las instrucciones a continuación) ¡pero puede que no sea así! Si no está seguro, haga una copia de seguridad de su .bashrc antes de seguir las instrucciones a continuación o salte a la sección FOR FOR LAZY .
Ingrese lo siguiente en GitBash para crear su archivo .bashrc:
$ echo "SSH_ENV=$HOME/.ssh/environment" >> ~/.bashrc
$ echo "" >> ~/.bashrc
$ echo "# start the ssh-agent" >> ~/.bashrc
$ echo "function start_agent {" >> ~/.bashrc
$ echo " echo /"Initializing new SSH agent.../"" >> ~/.bashrc
$ echo " # spawn ssh-agent" >> ~/.bashrc
$ echo " /usr/bin/ssh-agent | sed ''s/^echo/#echo/'' > /"/${SSH_ENV}/"" >> ~/.bashrc
$ echo " echo succeeded" >> ~/.bashrc
$ echo " chmod 600 /"/${SSH_ENV}/"" >> ~/.bashrc
$ echo " . /"/${SSH_ENV}/" > /dev/null" >> ~/.bashrc
$ echo " /usr/bin/ssh-add" >> ~/.bashrc
$ echo "}" >> ~/.bashrc
$ echo "" >> ~/.bashrc
$ echo "if [ -f /"/${SSH_ENV}/" ]; then" >> ~/.bashrc
$ echo " . /"/${SSH_ENV}/" > /dev/null" >> ~/.bashrc
$ echo " ps -ef | grep /${SSH_AGENT_PID} | grep ssh-agent$ > /dev/null || {" >> ~/.bashrc
$ echo " start_agent;" >> ~/.bashrc
$ echo " }" >> ~/.bashrc
$ echo "else" >> ~/.bashrc
$ echo " start_agent;" >> ~/.bashrc
$ echo "fi" >> ~/.bashrc
Verifique que el archivo se haya creado correctamente (el suyo solo debe diferir donde aparece "yourusername"):
$ cat ~/.bashrc
SSH_ENV=/c/Users/yourusername/.ssh/environment
# start the ssh-agent
function start_agent {
echo "Initializing new SSH agent..."
# spawn ssh-agent
/usr/bin/ssh-agent | sed ''s/^echo/#echo/'' > "${SSH_ENV}"
echo succeeded
chmod 600 "${SSH_ENV}"
. "${SSH_ENV}" > /dev/null
/usr/bin/ssh-add
}
if [ -f "${SSH_ENV}" ]; then
. "${SSH_ENV}" > /dev/null
ps -ef | grep ${SSH_AGENT_PID} | grep ssh-agent$ > /dev/null || {
start_agent;
}
else
start_agent;
fi
- Cierre GitBash y vuelva a abrirlo.
- Debería pedírsele su contraseña (para el archivo SSH que generó anteriormente).
- Si no hay un aviso, o bien no estableció una frase de contraseña o GitBash no está ejecutando el script .bashrc (que sería extraño, así que considere revisar el contenido del mismo!). Si está ejecutando esto en una Mac (OS X),
.bashrc
no se ejecuta de manera predeterminada -.bash_profile
is. 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:
Initializing new SSH agent...
succeeded
Identity added: /c/Users/yourusername/.ssh/id_rsa (/c/Users/yourusername/.ssh/id_rsa)
Y lo siguiente debería devolver los resultados:
$ ssh-add -l
Sin embargo, si obtiene lo siguiente de ssh-add -l
:
Could not open a connection to your authentication agent.
No generó el agente SSH y es probable que tu .bashrc sea la causa.
Si al iniciar GitBash, ves esto:
Initializing new SSH agent...
sh.exe": : No such file or directory
Eso significa que olvidó escapar del $ con un / cuando hizo 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 sus claves se han agregado:
$ ssh-add -l
Debería devolver algo similar a esto:
2048 0f:37:21:af:1b:31:d5:cd:65:58:b2:68:4a:ba:a2:46 /Users/yourusername/.ssh/id_rsa (RSA)
Ejecute el siguiente comando para obtener su clave pública:
$ cat ~/.ssh/id_rsa.pub
(debe devolver algo que empiece con "ssh-rsa ......"
- Haga clic en el icono de la ventana de GitBash
- Haga clic en Editar
- Click Mark
- Resalte la clave pública con el mouse (incluido el bit
ssh-rsa
y el final== [email protected]
) - Haga clic con el botón derecho en la ventana (realiza una copia)
- Pega tu clave pública en el Bloc de notas.
- Elimine todas las líneas nuevas de modo que sea solo una línea.
- Presione
CTRL+A
luegoCTRL+C
para copiar nuevamente la clave pública en su portapapeles.
Configure su clave privada con BitBucket siguiendo los siguientes pasos:
- Abra su navegador y navegue hasta el sitio BitBucket.org
- Inicie sesión en BitBucket.org
- Haz clic en tu avatar (arriba a la derecha)
- Haga clic en Administrar cuenta
- Haga clic en Teclas SSH (en Seguridad en el menú de la izquierda)
- Haga clic en Agregar clave
- Ingrese
Global Public Key
para la etiqueta - Pega la clave pública que copiaste del Bloc de notas
Una entrada de Global Public Key
ahora debería estar visible en su lista de claves.
- Regrese a GitBash
- cd en el directorio que contiene su proyecto
- Cambie su origen a la variación SSH (no será si ejecutó los pasos FOR THE LAZY )
Verifica tus controles remotos:
$ git remote -v
Cambia a la url SSH:
$ git remote set-url origin [email protected]:youraccount/yourproject.git
Verifique que las cosas funcionen:
$ git remote show origin
Debería ver algo como esto:
Warning: Permanently added the RSA host key for IP address ''...'' to the list of known hosts.
* remote origin
Fetch URL: [email protected]:youruser/yourproject.git
Push URL: [email protected]:youruser/yourproject.git
HEAD branch: master
Remote branch:
master tracked
Local ref configured for ''git push'':
master pushes to master (fast-forwardable)
¡HECHO!
Puede optar por usar HTTPS en lugar de SSH. Te solicitará que ingreses tu contraseña durante las operaciones remotas (se almacena temporalmente en caché una vez que la escribes). Aquí se muestra cómo puede configurar HTTPS:
PARA LOS DESTACADOS
Debería 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:
> https://[email protected]/accountname/reponame.git
Usando una herramienta GUI como TortoiseGit o herramientas de línea de comandos .
Aquí está la documentación de esta URL de origen alternativa.
Línea de comando para agregar un origen si no existe:
git remote add origin https://[email protected]/accountname/reponame.git
Línea de comando para cambiar un origen existente:
git remote set-url origin https://[email protected]/accountname/reponame.git
NOTA: el nombre de su cuenta no es su correo electrónico.
Es posible que también desee establecer su información global:
git config --global user.name "Your Name"
git config --global user.email "[email protected]"
Luego prueba tu push nuevamente (no es necesario volver a realizar commit)
git push origin master
Este error también aparece cuando el repositorio no existe. Intenté todas las respuestas hasta que vi que faltaba una raya en el nombre del repositorio
Este error también ocurre si olvidó agregar la clave privada a ssh-agent
. Haz esto con:
ssh-add ~/.ssh/id_rsa
Lo resolví quitando el control remoto usando el comando:
git remote remove origin
y luego intenté agregar control remoto usando https url en lugar de ssh
git remote add origin httpsUrl
Pide credenciales github. Ingrese las credenciales y luego intente presionar git usando:
git push origin master
Obtuve el mismo error para un repositorio; de repente, todos los demás funcionaron y siguen funcionando bien cuando intento enviar commits. El problema parecía ser con la clave SSH (como ya sabe por los comentarios anteriores) - en bitbucket vaya a View Profile
luego haga clic en Manage Account
.
En el lado izquierdo, haga clic en las SSH Keys
luego agregue la que tiene en su sistema bajo 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 el nombre personalizado, y luego requerir la opción -i
con la ruta a la clave. cuando te conectas es decir
ssh -i ~/.ssh/customkeyname username@ip_address
Una vez que haya agregado su clave local a su cuenta en bitbucket, podrá comenzar a interactuar con su repositorio.
Para errores:
[error] acceso al repositorio denegado. el acceso a través de una clave de despliegue es de solo lectura. fatal: no se pudo leer desde el repositorio remoto. Por favor, asegúrese de tener los derechos de acceso correctos y existe el repositorio.
[error] fatal: no se pudo leer desde el repositorio remoto.
[error] fatal: no se puede encontrar el ayudante remoto para ''https''
Lo resolví siguiendo estos pasos:
Primero instala estas dependencias:
$ yum install expat expat-devel openssl openssl-devel
A continuación, elimine git:
$ yum remove git git-all
Ahora compila e instala Git en la última versión, en este caso:
$ wget https://github.com/git/git/archive/v2.13.0.tar.gz
$ tar zxf v.2.13.0.tar.gz
$ cd git-2.13.0/
Luego para la configuración:
$ make configure
$ ./configure --with-expat --with-openssl
Y finalmente instalar así:
$ make
$ make install install-doc install-html install-info
eso es todo, ahora configura tu repositorio con https:
$ git remote add origin https://github.com/*user*/*repo*.git
# Verify new remote
$ git remote -v
si ha configurado una clave ssh en su servidor remoto, debe eliminarla.
Recibí este error
La conexión a bitbucket.org está cerrada por un host remoto. fatal: no se pudo leer desde el repositorio remoto. Por favor, asegúrese de tener los derechos de acceso correctos.
Entonces probé
git config --global usuario.email "[email protected]"
trabajado sin comillas
Reformateado significa que probablemente eliminó sus claves ssh públicas y privadas (en ~ / .ssh).
Necesita regenerarlos y publicar su clave pública ssh en su perfil BitBucket, como se documenta en " Usar el protocolo SSH con Bitbucket ", luego de " confluence.atlassian.com/display/BITBUCKET/Set+up+SSH+for+Git ".
Cuentas-> Administrar Cuentas-> Llaves SSH:
Entonces:
Imágenes de " Integración de Mercurial / BitBucket con el software JetBrains "
Si está utilizando SourceTree (estoy usando 2.4.1), encontré una manera más simple de generar una clave SSH y agregarla a mi configuración de Bitbucket. Esto resolvió mi problema.
- En SourceTree, vaya a Preferencias.
- Ve a la pestaña Cuentas y selecciona tu cuenta.
- Debería haber una opción para generar y copiar una clave SSH al portapapeles.
- Una vez que haya copiado eso, vaya a Bitbucket en su navegador. Ir a [avatar] -> configuración de Bitbucket.
- Ve a las teclas SSH.
- Haga clic en Agregar clave
- Pega la clave que copiaste.
Recibí un correo electrónico de confirmación de Bitbucket que decía 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ó.
ls -la ~/.ssh
Como otros han declarado, esta documentación me ayudó: utilizar el protocolo SSH con la nube Bitbucket
Solo necesita el archivo de configuración en el directorio ~ / .ssh
ref: https://confluence.atlassian.com/bitbucket/set-up-ssh-for-git-728138079.html
agregue la siguiente configuración en el archivo de configuración
Host bitbucket.org
IdentityFile ~/.ssh/<privatekeyfile>
Yo tuve el mismo problema. Mis llaves SSH fueron configuradas correctamente. Arreglé este problema así.
Después de crear un nuevo proyecto en Bitbucket, use clone. Ingrese el comando de clonación en la terminal y debe clonar el proyecto vacío en su computadora. Después de eso, puede copiar sus archivos a este directorio y comenzar a enviar y enviar bitbucket.