Determinar dónde se ha usado la clave
Para determinar dónde se ha usado la clave, abre una terminal y escribe el comando ssh
. Usa la marca -i
para obtener la ruta a la clave que deseas verificar:
$ ssh -T -ai ~/.ssh/id_rsa git@nombre de host
# Connect to tu instancia de GitHub Enterprise Server using a specific ssh key
> Hi username! You've successfully authenticated, but GitHub does not
> provide shell access.
El nombre de usuario en la respuesta es la cuenta de tu instancia de GitHub Enterprise Server a la cual la llave está adjunta actualmente. Si la respuesta se parece a "username/repo", la llave se ha vinculado a un repositorio como llave de implementación.
Para forzar a SSH a que utilice solo la clave que se proporcionó en la línea de comandos, utiliza -o
para agregar la opción IdentitiesOnly=yes
:
$ ssh -v -o "IdentitiesOnly=yes" -i ~/.ssh/id_rsa git@nombre de host
Resolver el problema
Para resolver el problema, primero elimina la clave de la otra cuenta o repositorio y luego agrégala a tu cuenta.
Si no tienes permisos para transferir la clave y no puedes comunicarte con un usuario que los tenga, elimina el par de claves y genera uno nuevo.
Llaves de implementación
Una vez que una clave se ha vinculado a un repositorio como llave de implementación, no se la puede usar en otro repositorio. Si se te muestra este error mientras configuras las llaves de despliegue, consulta la sección "Administrar las llaves de despliegue".