es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

VS Code no se conecta a múltiples cuentas de GitLab utilizando sus claves SSH correspondientes.

Entonces, para Windows, veo que la configuración predeterminada del cliente ssh debe colocarse en C:\Users\Admin\.ssh\config y yo uso la misma, también soy el usuario Admin.

Agregué la siguiente configuración del cliente ssh del lado del cliente:

PS C:\Users\Admin> type ..ssh\config
Host gc
HostName gitlab.com
User git
IdentityFile ~/.ssh/company_gitlab
Host gp
HostName gitlab.com
User git
IdentityFile ~/.ssh/gitlab_personal

Lo probé desde Powershell y está funcionando para ambas cuentas de GitLab, mi empresa y mis cuentas personales, utilizando sus respectivas claves ssh.

PS C:\Users\Admin> ssh -T git@gc
Ingrese la frase de contraseña para la clave ‘C:\Users\Admin/.ssh/company_gitlab’:
¡Bienvenido a GitLab, @johnwilson!

PS C:\Users\Admin> ssh -T git@gp
Ingrese la frase de contraseña para la clave ‘C:\Users\Admin/.ssh/gitlab_personal’:
¡Bienvenido a GitLab, @jwilson!

Pero cuando se trata de vscode, cuando intento enviar o recibir cambios al repositorio remoto, aparece el siguiente error tanto para la cuenta de GitLab de la empresa como para la cuenta personal.

git push -u gc master
git@gitlab.com: Permiso denegado (clave pública, interactiva de teclado).
fatal: No se pudo leer desde el repositorio remoto.

git push -u gp master
git@gitlab.com: Permiso denegado (clave pública, interactiva de teclado).
fatal: No se pudo leer desde el repositorio remoto.

También probé la sugerencia de aquí.

PS C:\Users\Admin\ownCloud\Company\GitLab\userlist> git remote add origin git@gc:company/infra_code/userlist.git
PS C:\Users\Admin\ownCloud\Company\GitLab\userlist> git remote -v
origin git@gc:company/infra_code/userlist.git (fetch)
origin git@gc:company/infra_code/userlist.git (push)

PS C:\Users\Admin\ownCloud\Company\GitLab\userlist> git ls-remote origin
Ingrese la frase de contraseña para la clave ‘C:\Users\Admin/.ssh/company_gitlab’:
611b36ef47056773c288499cb6974d8671196d78 HEAD
611b36ef47056773c288499cb6974d8671196d78 refs/heads/master

Estoy confundido, ¿vscode no utiliza la configuración predeterminada del cliente ssh C:\Users\Admin\.ssh\config en Windows?

¿O me estoy perdiendo algo?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Problema al usar SSH con GitLab en Visual Studio Code

    Contexto

    El usuario es un experto en IT especializado en visual-studio-code, gitlab, vscode-remote. Ha configurado su cliente SSH agregando los detalles necesarios para sus cuentas de GitLab de la empresa y personales. Ha probado la configuración desde Powershell y ha confirmado que funciona. Sin embargo, cuando intenta hacer push o pull de cambios al repositorio remoto usando Visual Studio Code, ocurre un error que dice “permiso denegado (publickey,keyboard-interactive)”.

    Análisis del problema

    El usuario ha intentado agregar el origen remoto pero aún se encuentra con el mismo error. Está confundido acerca de si Visual Studio Code no está reconociendo la configuración predeterminada del cliente SSH ubicada en C:\Users\Admin\.ssh\config o si le falta algo.

    Solución

    Hay algunas cosas que el usuario puede probar para resolver este problema:

    1. Verificar si el agente SSH está en ejecución escribiendo ssh-add -l en la terminal. Si el agente no está en ejecución, iniciarlo con el comando ssh-agent bash.
    2. Verificar si Visual Studio Code está utilizando la misma ruta (PATH) que Powershell escribiendo echo $PATH tanto en Powershell como en Visual Studio Code.

    3. Verificar los registros de SSH escribiendo tail /var/log/auth.log en la terminal. Esto proporcionará información más detallada sobre por qué se está denegando la conexión remota.

    4. Intentar usar el protocolo SSH en lugar del protocolo HTTPS para conectarse al repositorio de GitLab. Para hacer esto, cambiar la URL remota a git@gitlab.com:company/infra_code/userlist.git o git@gitlab.com:gitlab_personal/infra_code/userlist.git según la cuenta desde la cual el usuario intenta hacer push o pull de los cambios.

    5. Verificar que las claves SSH estén agregadas al agente SSH escribiendo ssh-add -l. Si no están agregadas, agregarlas con el comando ssh-add ~/.ssh/company_gitlab o ssh-add ~/.ssh/gitlab_personal según la cuenta que esté utilizando el usuario.

    Al probar estos enfoques diferentes, el usuario debería poder resolver el problema y conectarse al repositorio de GitLab usando SSH en Visual Studio Code.

Comments are closed.