Determinar dónde se ha usado la clave
Para determinar dónde se ha usado ya la clave, abra una terminal y escriba el comando ssh
. Use la marca -i
para obtener la ruta a la clave que quiera comprobar:
$ ssh -T -ai ~/.ssh/id_rsa git@hostname
# Connect to your GitHub Enterprise Server instance using a specific ssh key
> Hi username! You've successfully authenticated, but GitHub does not
> provide shell access.
En la respuesta, username es la cuenta de your GitHub Enterprise Server instance a la que se adjunta actualmente la clave. Si la respuesta tiene un aspecto similar a "username/repo", la clave se ha adjuntado a un repositorio como una clave de implementación.
Para forzar a que SSH use solo la clave proporcionada en la línea de comandos, use -o
para agregar la opción IdentitiesOnly=yes
:
$ ssh -v -o "IdentitiesOnly=yes" -i ~/.ssh/id_rsa git@hostname
Resolver el problema
Para resolver el problema, quite primero la clave de la otra cuenta o repositorio y, después, agréguela a la cuenta.
Si no tiene permisos para transferir la clave y no puede ponerse en contacto con un usuario que los tenga, quite el par de claves y genere uno nuevo.
Claves 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 produce este error al configurar las claves de implementación, vea "Administración de claves de implementación".