git - permission - Acceso al repositorio denegado. el acceso a través de una clave de implementación es de solo lectura
multiple ssh key for bitbucket (16)
Después de clonar exitosamente mi repo de heroku y agregué otro control remoto
1/ git clone [email protected]:[APP].git
2/ git remote add bitbucket ssh://[email protected]/[ACCOUNT]/[REPO].git
3/ git push bitbucket master
Todavía recibo este error después de ejecutar la línea (3) o usar SourceTree
conq: repository access denied. access via a deployment key is read-only.
Primero no entiendo lo que significa este mensaje en la práctica. Y eso es una pena.
Hice un par de claves ssh y las agregué a heroku:
ssh-keygen -t rsa
heroku keys:add ./id_rsa.pub
También agregué mi clave en la sección de claves de implementación en BitBucket. Pero debo estar perdiendo algo. Esta pregunta no está fuera de la pereza, he estado leyendo varios documentos, incluidas las guías de BitBuckets. Pero todavía no se resuelve este problema.
Esta publicación está relacionada con ¿Puedo importar mi repositorio de heroku git en bitbuket? ¿y cómo?
HECHOS ADICIONALES:
ssh -T [email protected]
conq: authenticated via a deploy key.
You can use git or hg to connect to Bitbucket. Shell access is disabled.
$ ssh -v [email protected]
OpenSSH_5.6p1, OpenSSL 0.9.8r 8 Feb 2011
debug1: Reading configuration data /Users/joel/.ssh/config
debug1: Applying options for bitbucket.org
debug1: Reading configuration data /etc/ssh_config
debug1: Applying options for *
debug1: Connecting to bitbucket.org [207.223.240.181] port 22.
debug1: Connection established.
debug1: identity file /Users/joel/.ssh/id_rsa type 1
debug1: identity file /Users/joel/.ssh/id_rsa-cert type -1
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.3
debug1: match: OpenSSH_5.3 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_5.6
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5 none
debug1: kex: client->server aes128-ctr hmac-md5 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Host ''bitbucket.org'' is known and matches the RSA host key.
debug1: Found key in /Users/joel/.ssh/known_hosts:5
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /Users/joel/.ssh/id_rsa
debug1: Remote: Forced command: conq deploykey:13907
debug1: Remote: Port forwarding disabled.
debug1: Remote: X11 forwarding disabled.
debug1: Remote: Agent forwarding disabled.
debug1: Remote: Pty allocation disabled.
debug1: Server accepts key: pkalg ssh-rsa blen 279
debug1: read PEM private key done: type RSA
debug1: Remote: Forced command: conq deploykey:13907
debug1: Remote: Port forwarding disabled.
debug1: Remote: X11 forwarding disabled.
debug1: Remote: Agent forwarding disabled.
debug1: Remote: Pty allocation disabled.
debug1: Authentication succeeded (publickey).
Authenticated to bitbucket.org ([207.223.240.181]:22).
debug1: channel 0: new [client-session]
debug1: Requesting [email protected]
debug1: Entering interactive session.
debug1: Sending environment.
debug1: Sending env LC_CTYPE = UTF-8
PTY allocation request failed on channel 0
Parece que todo está bien.
Proceso de dos pasos para poder empujar pull
Paso 1: Generar clave ssh (pública y privada) en mac
Paso 2: poner la clave privada en mac y la clave pública en el sitio web de git
A continuación se detallan los pasos para usuarios de mac.
Paso 1: Generando claves
- (asegúrate de que tienes instalado git) https://git-scm.com/download/mac
- abra el terminal y escriba
ssh-keygen
Esto le pedirá que ingrese la ubicación de almacenamiento para la clave, puede escribir/Users/[machinename]/.ssh/[keyname]
- A continuación, solicitará una frase de contraseña, puede dejarla en blanco presionando la tecla Intro o ingresar alguna palabra clave para ingresar nuevamente en el próximo aviso
- Esto habrá creado dos claves para usted, privada y pública, con el nombre [nombre de clave] y [nombre de clave] .pub
Paso 2: empujar las teclas a las ubicaciones apropiadas [mac y cuentas remotas, es decir, Github, bitbucket, gitlab, etc.]
- Escriba
ssh-add -K ~/.ssh/[keyname]
en el terminal para agregar su clave privada al mac - Escriba
pbcopy < ~/.ssh/[keyname].pub
para copiar la clave pública al portapapeles - Abra la configuración de la cuenta en su sitio web de git respectivo y vaya a Agregar clave, pegue la clave pública copiada arriba
Hecho, ahora puedes empujar tirar.
A veces no funciona porque configura manualmente otra clave para bitbucket en ~/.ssh/config
.
Ahora la opción SSH está bajo la configuración de seguridad
Haga clic en Su Avatar -> Configuración de Bitbucket -> Clave SSH -> Agregar clave
Pega tu clave pública
La ''clave de implementación'' es solo para acceso de solo lectura. La siguiente es una buena manera de trabajar a través de esto.
- Cree una clave SSH y agréguela a bitbucket (Usuario Avatar -> Configuración de Bitbucket-> Claves SSH)
- ~ / .ssh / known_hosts
- ssh-add -D (Eliminar las claves cargadas en el agente SSH)
- ssh-add ~ / .ssh / your_private_key_for_bitbucket
- ssh [email protected] -Tv (Verifique que su clave se está acostumbrando para conectarse a bitbucket)
- git push ''nombre remoto'' ''nombre de rama''
La primera confusión de mi lado fue sobre dónde establecer exactamente las claves SSH en BitBucket.
Soy nuevo en BitBucket y estaba configurando una clave de implementación que solo da acceso de lectura .
Así que asegúrese de configurar su rsa pub key
en la configuración de su cuenta de BitBucket .
Haga clic en su avatar de BitBucket y seleccione Administrar cuenta . Allí podrás configurar claves SSH .
Simplemente eliminé la clave de implementación , no la necesito por ahora. Y funcionó
Las claves de implementación son de solo lectura. Para habilitar el acceso de escritura necesitas:
Elimine esta clave de despliegue de la configuración de su repositorio. No podrás escribir en este repositorio con esta clave de todos modos.
Vaya a "Avatar -> Configuración -> SSH Keys" y agregue la misma clave
Ahora intenta empujar para quitar la rama
Antes pudo escribir en los repositorios, pero este es un cambio en BitBucket donde ya no puede escribir con la clave de implementación.
Me gustaría volver a enfatizar lo siguiente:
- Es posible que haya agregado la clave SSH a su repositorio (por ejemplo, EjemploRepo), pero NO es donde va la clave SSH .
- Está destinado a entrar en su perfil . Este es el pequeño avatar en la esquina inferior izquierda de la pantalla. Aquí, encontrará un lugar diferente para colocar sus claves SSH (en Seguridad)> y luego agregará la clave aquí.
- Si accidentalmente coloca su clave SSH en el repositorio (a diferencia de su cuenta), elimine la que está en el repositorio.
Me tomó mucho tiempo darme cuenta, de alguna manera, incluso después de leer las respuestas aquí, no hizo clic.
Ocurrió esto cuando intentaba usar una clave de implementación porque eso es exactamente lo que quería.
Podría conectarme a través de ssh -T [email protected]
y me diría que tenía acceso para leer el repositorio que quería, pero git clone
fallaría.
Borrar ~/.ssh/known_hosts
, generar una nueva clave a través de ssh-keygen
, agregar esa nueva clave a bitbucket y volver a intentarlo.
Pasos:
Crear claves ssh en el servidor de origen
ssh-keygen
Cat y copia id_rsa.pub ubicado en el directorio ~. / Ssh
- Vaya a Bitbucket, si ya ha configurado las claves de acceso para los repositorios, borre las claves públicas existentes
- Vaya a Avatar de Bitbucket> Configuración de Bitbucket> Claves SSH (en Seguridad, panel izquierdo)> Haga clic en ''Agregar claves''> pegue la clave pública.
Compruebe si funciona ejecutando el comando siguiente en el servidor de origen
git remote show origin
Para obtener y enviar desde el servidor de origen, si el protocolo es ''https'', debe cambiarlo a ''git + ssh'' ejecutando el comando a continuación
git remote set-url origin git+ssh://<bitbucketaccount>@bitbucket.org/<accountname>/repo.git
Comprueba si puedes hacer push al repo.
¡Hecho!
Primero debe eliminar la clave de implementación si va a agregar la misma clave en Administrar clave SSH de cuenta.
Recientemente me enfrenté al mismo problema. Tuve el siguiente error:
Acceso al repositorio denegado. el acceso a través de una clave de implementación es de solo lectura.
Puedes tener dos tipos de claves SSH:
- Para su cuenta completa que funcionará para todos los repositorios
- Por clave SSH de repositorio que solo se puede utilizar para ese repositorio específico.
Simplemente quité mi clave SSH del repositorio y agregué una nueva clave SSH a mi cuenta y funcionó bien.
Espero que esto ayude a alguien. Aclamaciones
TLDR: ssh-add ~ / .ssh / yourkey
Acabo de solucionar este problema.
Y ninguna de las otras respuestas ayudó.
Tenía un ./ssh/config con todo lo correcto, también un repositorio anterior que funciona bien (la misma cuenta de bitbucket, la misma clave). Luego generé una variable deploy_key y, después, creé un nuevo repositorio.
Después de eso no se pudo clonar el nuevo repositorio.
Ojalá supiera cómo / por qué el agente ssh estaba arruinando todo esto, pero agregar la clave lo resolvió. Me refiero a agregar la clave en mi Ubuntu local, no en el administrador de bitbucket. El comando es justo
~/.ssh$ ssh-add myregualrkey
Espero que esto ayude a alguien.
Tenía el mismo problema que tenía Kabir Sarin. La solución fue clonar el repositorio a través de SSH, en lugar de usar la URL https. Así que esto es lo que me ayudó, y espero que otros:
git clone [email protected]:{accountName}/{repoName}.git
Todo lo que necesitas - agrega otra clave y úsala.
Como he encontrado la primera clave, siempre la clave de implementación.
debe agregar su clave a su perfil y NO a un repositorio específico. siga esto: https://community.atlassian.com/t5/Bitbucket-questions/How-do-I-add-an-SSH-key-as-opposed-to-a-deployment-keys/qaq-p/413373
para este error: conq: acceso al repositorio denegado. el acceso a través de una clave de implementación es de solo lectura.
Cambio el nombre de mi llave, ejemplo
cd /home/try/.ssh/
mv try id_rsa
mv try.pub id_rsa.pub
Trabajo en mi propia llave en bitbucket