Vscode: Git: admite git con contraseña de clave privada

Creado en 13 oct. 2016  ·  229Comentarios  ·  Fuente: microsoft/vscode

  • Versión de VSCode: 1.6.0
  • Confirmar e52fb0bc87e6f5c8f144e172639891d8d8c9aa55
  • Fecha 2016-10-10T18: 37: 40.189Z
  • Shell 1.3.7
  • Procesador 52.0.2743.82
  • Nodo 6.5.0
  • Versión del sistema operativo: Windows 7 Pro

Pasos para reproducir:

  1. Cree un par de claves pública-privada con protección por contraseña
  2. agrégalos a tu cuenta de github
  3. configurar git para usar el archivo de clave privada
  4. intenta empujar algo con git

Resultado:

git pull
Permission denied, please try again.
Permission denied, please try again.
Permission denied (publickey,password).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
feature-request git help wanted

Comentario más útil

Una solución alternativa para Windows 10:

  1. Haga que Git use el OpenSSH que viene con Windows en lugar del que viene con Git.
    git config --global core.sshCommand "C:/Windows/System32/OpenSSH/ssh.exe"
  2. Configure el servicio ssh-agent (no el que viene con git) para que se ejecute automáticamente.
    Abra el Administrador de tareas, pestaña Servicios, haga clic en Abrir servicios.
    Busque el Agente de autenticación de OpenSSH, abra las propiedades, configure el Tipo de inicio en Automático, presione Aceptar.
    También inicie el servicio o reinicie su computadora.
  3. Agregue su clave protegida por contraseña al agente.
    ssh-add
    Debería recoger automáticamente las claves almacenadas en C: \ Users \% USERNAME% \. Ssh, que es donde ssh-keygen las crea.
    Ingrese su (s) contraseña (s) cuando se le solicite.

Nota: Si, al instalar Git para Windows, seleccionó la opción para agregar comandos bash a PATH, el comando ssh-add podría apuntar al ejecutable incorrecto. Si es así, puede ejecutar manualmente el incluido para agregar su clave al agente:
C:\Windows\System32\OpenSSH\ssh-add.exe

Ahora, el agente de autenticación OpenSSH integrado se ejecutará al iniciarse con su clave protegida con contraseña desbloqueada, y Git usará Windows OpenSSH en lugar del propio. Por lo tanto, no es necesario que escriba su contraseña cada vez, no es necesario iniciar manualmente el agente ssh y no es necesario iniciar VS Code desde la línea de comando.

Todos 229 comentarios

¿Funciona desde la línea de comandos? ¿Cómo se configura exactamente git para usar el archivo de clave privada?

Funciona desde la línea de comandos. En realidad, configuro git a través de tortoise git , así que supongo que todo está hecho correctamente.

image

¿Cómo se inicia la línea de comandos? ¿Qué línea de comando?

Yo uso git bash (MINGW64) en Windows.

Correcto. Por lo tanto, es posible que también tengamos que agregar una configuración git.sshkey , como Tortoise.

Con Windows 10, Git 2.10.1.

Tuve problemas al usar git en vscode con mi servidor de producción, así que creé un servidor de prueba.
Al principio, con un usuario protegido por contraseña (sin claves), los mismos errores, sin ventanas emergentes de solicitud de credenciales ni nada.
Usando el terminal dentro de vscode o cualquier cmd aleatorio, puedo presionar, tirar y funciona: solicita una contraseña. Con vscode solo puedo preparar confirmaciones. Tirar, empujar, sincronizar todo falla porque no están pidiendo contraseña.

En producción, estoy usando una clave protegida con contraseña con un puerto diferente de 5 dígitos para ssh.
También tengo algunas claves ssh diferentes (incluido git) en una máquina ...

@joaomoreno ¿Por qué lo movió a la cartera de pedidos?

Solo planificando prioridades. Sin embargo, puede intentar una solicitud de extracción. 👍

Esperándolo 😉

¿Algún avance en esto? Tengo el mismo problema y es bastante molesto 😞

@joaomoreno Estoy

La gente puede seguir mi progreso aquí .

@hashhar ¡ Eso es increíble! 🍻 Avísame si chocas con algunas paredes.

@joaomoreno Estaba buscando en los lugares que necesitan cambios y encontré lo siguiente:

Escenario actual:

  • Si tiene un agente ssh ejecutándose con la clave agregada, puede realizar todas las operaciones excepto clone (porque node.url.parse () no funciona para las URL ssh).
  • Si ssh-agent no está ejecutando todos los comandos git que involucran actividad de red (buscar, clonar, empujar, tirar) fallan. El error lo genera git.exe.

Cambios propuestos:

  • [x] No es necesario, consulte el siguiente comentario. Agregue una sobrecarga a url.parse () (¿dónde?) para asegurarse de que las URL ssh también sean reconocidas.
  • [x] Agregue una clave de configuración, git.sshkey (ubicación de la clave privada (limitada a las claves openssh en este momento - porque git las admite de forma nativa, buscará las claves de masilla más adelante)).
  • [] Agregue un condicional donde la extensión git se inicializa para iniciar un agente SSH (si uno no se está ejecutando) y agregue la clave. Necesitará de alguna manera (¿selección rápida?) Pedirle al usuario que ingrese su frase de contraseña. ( ¿Matamos al agente cuando cerramos vscode? )

No serán necesarios otros cambios (por lo que he visto actualmente) porque la comunicación con el punto final de git es manejada por git.exe, no por vscode.

De acuerdo, mi mal por el análisis de URL. Parece que el nodo acepta direcciones URL como git+ssh://[email protected]:hashhar/vscode o ssh://[email protected]:hashhar/vscode pero la parte ssh debe mencionarse explícitamente.

¿Qué debo hacer al respecto? ¿Debería vscode anteponer mágicamente ssh antes de las URL que coinciden con el formato [email protected]:username/repo ? ¿O fallar en silencio? (Sin embargo, esto todavía necesita que ssh-agent se ejecute).

Ping @joaomoreno. Si puede encontrar el tiempo, comente sobre los problemas anteriores que tengo. Actualmente he pirateado una prueba de concepto iniciando el ssh-agent con una clave privada. Funciona, pero todavía se necesita algo de pulido.

@hashhar Perdón por la demora ... De hecho, estoy bastante ocupado en este momento. Siéntase libre de crear el PR y mover la discusión allí, intentaremos incluirlo en marzo.

No es suficiente simplemente iniciar ssh-agent, también debe agregar las variables de entorno SSH_AGENT_PID y SSH_AUTH_SOCK para que Git sepa dónde buscar.

Luego, deberá almacenar esto en algún lugar, para que pueda usarse entre reinicios de VSCode, o deberá reiniciar ssh-agent cada vez que reinicie VS Code.

Sería estupendo si pudiera compartir esto con Posh-Git (el módulo Powershell Git), que almacena los valores en ([System.IO.Path]::GetTempPath()) ".ssh\$key.env" , pero posiblemente valga la pena hablar con ese equipo para asegurarse de que esa ubicación es algo que están feliz de estar bloqueado.

@andrewducker Muchas gracias por la entrada adicional. No he estado trabajando en esto al ritmo que me gustaría debido a mis mid-sems. Volveré a eso a finales de semana. Le avisaré al equipo de Posh-Git.

@joaomoreno He vuelto a trabajar en esto. Mi enfoque anterior era demasiado ingenuo y no funcionó. Actualmente estoy tratando de encontrar un lugar adecuado para agregar una función que se llama antes de realizar cualquier comando de git (es decir, cuando se inicia VSCode y se está cargando el proveedor de git). ¿Dónde hago esto? Parece que no puedo entender cuál es el flujo de código.

¿Existe un fragmento de código que se llama cada vez que se realiza una llamada de Git? Si es así, puede solicitar la contraseña la primera vez que la llame.

Mirándolo, poner un gancho en Git.ts sería el camino a seguir, dentro de cualquier función que significaría conectarse al servidor. (Como buscar, tirar, empujar, etc.).

(Me ofrecería hacer esto yo mismo, pero nunca escribí nada en TypeScript, ni trabajé con extensiones de VSCode, por lo que esto se basa solo en que busqué brevemente el código en GitHub).

El mayor problema es que en Windows las variables SSH_AUTH_SOCK y SSH_AUTH_PID pueden estar disponibles para todos los procesos o solo para una única sesión de consola, dependiendo de cómo se haya iniciado ssh-agent. Por lo tanto, es mucho más fácil iniciar un agente ssh desde VSCode en lugar de reutilizar los existentes (al menos en Windows).

En términos prácticos, esto significa que el usuario deberá proporcionar su frase de contraseña UNA VEZ antes de que se realice la primera operación de Git. Las instancias de VSCode pueden compartir los agentes ssh entre sí si podemos definir un lugar codificado donde se va a crear SSH_AUTH_SOCK para que otras instancias de VSCode puedan verlas antes de iniciar sus propios agentes.

Esto está resultando un desafío bastante interesante para mí. 😃

También sería una opción viable si vscode respetara un SSH_AUTH_SOCK ya existente. Se me solicita la contraseña de mi clave privada aunque ssh-agent ya se está ejecutando en mi sistema. Curiosamente, puedo usar git dentro del terminal vscode integrado (shell) bien. El complemento git y el terminal deberían comportarse de la misma manera para facilitar la depuración.

EDITAR: Estoy comprometido f9d0c687ff2ea7aabd85fb9a43129117c0ecf519
EDIT2: Funciona cuando ejecuto vscode desde un bash en lugar de usar el lanzador de mi administrador de ventanas.

Sí, iniciar VSCode desde una sesión que ya los tiene configurados en el entorno funciona perfectamente (Lanzamiento desde Powershell en mi caso). Entonces, si ya están configurados, no hay nada que hacer.

¿Algún progreso en esto?

@ezamelczyk Nope. Lo siento. No he podido dedicarle suficiente tiempo debido a la universidad. Gracias por recordármelo por cierto. Intentaré trabajar un poco la semana que viene.

Hola a todos,

Lamentablemente, estoy teniendo el mismo tipo de problema ... 😭
Aquí está mi configuración y el escenario detallado para reproducirlo.
¡Espero que te ayude un poco!

SO : macOSX Sierra versión 10.24.4
VScode : Versión 1.11.1

En mi carpeta .ssh tengo esos archivos:

  • config
  • id_rsa_github
  • id_rsa_github.pub
  • id_rsa_gitlab
  • id_rsa_gitlab.pub
  • know_hosts

El contenido del archivo de configuración :

Host gitlab.com
  HostName gitlab.com
  User git
  RSAAuthentication yes
  IdentityFile ~/.ssh/id_rsa_gitlab

Host github.com
  HostName github.com
  User git
  RSAAuthentication yes
  IdentityFile ~/.ssh/id_rsa_github

Puedo comprometerme y empujar sin ningún problema desde la línea de comandos y la torre.
Pero no puedo en VScode ... me devuelve este mensaje de salida cada vez que intento:

git pull
Permiso denegado (clave pública).
fatal: no se pudo leer desde el repositorio remoto.
Asegúrese de tener los derechos de acceso correctos.
y el repositorio existe.

Gracias por tu ayuda

Para mí, esto es realmente un bloqueador. Me gusta VSC, pero sin la capacidad de usar git no puedo usarlo como mi editor diario.

@MartinZubek @jmbelloteau ¿ soluciona al iniciarlo desde una línea de comando donde inició el Agente SSH?

@andrewducker

Desde la terminal, me conecté a mi Git remoto con el comando:

ssh -T [email protected]

... luego he abierto VScode desde la terminal con el comando:

code

Cuando presiono desde VScode, sigo recibiendo el mismo error ...
¡Eso es realmente un problema!

@MartinZubek lo mismo aquí, VScode es increíble, mucho más que Atom.
Me encanta la velocidad del terminal integrado UX y la posibilidad de usar git.

Pero también necesitamos una conexión a GIT remoto para estar seguros. Eso significa proteger con contraseña SSH ...

Tiene sentido ... ¿verdad?

@andrewducker De hecho, me funciona de esta manera. :)
¿Alguna posibilidad de que funcione de forma nativa sin necesidad de iniciarlo desde la línea de comandos?

Hola @MartinZubek ,

¿Qué te funciona? ¿Puedes ser mas específico? 😄

@jmbelloteau Seguro, ya no termina con el error "Permiso denegado (clave pública)" y git pull / push funciona como se supone que debe hacerlo. Utiliza la clave correcta del archivo ~ / .ssh / config y siempre que se necesita la frase de contraseña de la clave, aparece esta ventana:
http://imgur.com/wpExMMP

@MartinZubek para que puedas empujar desde VScode? Eso es genial...
¿Lo inició desde una línea de comandos en la que inició SSH Agent?
Si es así, ¿cómo?
No entiendo por qué no funciona en mi entorno.

@jmbelloteau Sí, lancé vscode desde la línea de comando que uso (es el git-bash.exe que viene con git para Windows por defecto, para ser exactos). Sin embargo, no tuve que iniciar ssh-agent ni nada manualmente. Supongo que comienza automáticamente con git-bash o algo así.

@MartinZubek maldita sea ...

Incluso como dijiste, no funciona para mí 😭

@vscodeteam ¿ Algún plan para manejar este problema?

@jmbelloteau Es demasiado difícil. También es bastante impredecible. Lo que intenté implementar fue iniciar un ssh-agent en el proceso de nodo para que las variables env estén disponibles para VSCode, pero eso significa que múltiples instancias de VSCode necesitarán múltiples ssh-agent y aún así requerirán que se ingresen contraseñas cada vez.

Estoy buscando una forma de usar la variable SSH_AUTH_SOCK en su lugar. Funciona en Linux pero aún no lo he probado en Windows.

Existe el problema adicional de OpenSSH vs Windows Powershell SSH vs PuTTY.

Si alguien está dispuesto a probarlo, puedo enviar el código a mi bifurcación y la gente puede probarlo. Sin embargo, llevará algún tiempo ya que he usado rutas codificadas (prueba de concepto).

Creo que lo tendré listo para el sábado o el domingo.

¡Hola @hashhar !

Gracias por tu respuesta.
De hecho, parece realmente complicado. 😞

No soy realmente un desarrollador, así que no puedo ayudarte, solo me quedaré en caso de que encuentres la magia y te envíe buena suerte.

@hashhar con respecto a sus comentarios, tengo 2 opciones para sugerir:

  1. Puede reiniciar todo el VSCode (incluido el proceso del nodo antecesor) en ssh-agent , ejecutado por ssh-agent path/to/code ; de esta manera, no es necesario ejecutar una instancia de ssh-agent para cada proceso de nodo.
  2. Puede ejecutar ssh-agent desde un proceso de nodo, obtener las variables de entorno (por ejemplo, imprimirlas en un archivo) y compartirlas a través de todos los procesos.

Definitivamente puedo probar. ¿Necesito algo en particular para construirlo? He instalado la versión oficial.
Aunque puedo construirlo :)

@joaomoreno Creo que tengo una solución parcial lista.

En el archivo extensions/git/src/askpass.ts , cambié getEnv() a:

getEnv(): Promise<any> {
        return this.portPromise.then(port => ({
            ELECTRON_RUN_AS_NODE: '1',
            GIT_ASKPASS: path.join(__dirname, 'askpass.sh'),
            VSCODE_GIT_ASKPASS_NODE: process.execPath,
            VSCODE_GIT_ASKPASS_MAIN: path.join(__dirname, 'askpass-main.js'),
            VSCODE_GIT_ASKPASS_PORT: String(port),
            SSH_AUTH_SOCK: process.env['SSH_AUTH_SOCK'],
            SSH_AGENT_PID: process.env['SSH_AGENT_PID'],
            SSH_ASKPASS: process.env['SSH_ASKPASS'] || '/usr/lib/ssh/x11-ssh-askpass'
        }));
    }

El SSH_AUTH_SOCK se elige del entorno del usuario si está configurado.

Ahora son posibles las siguientes cosas:

| ssh-agent | clave ssh cargada en el agente | resultado |
|: ---: |: ---: |: ---: |
| ✔ | ✔ | ✔ |
| ✔ | ✘ | $ SSH_ASKPASS se ejecuta |
| ✘ | ✘ | no pasa nada |

Entonces, para solucionar el problema en la segunda fila, también podemos configurar SSH_ASKPASS desde askpass.ts y eso hace que VSCode inicie el programa al inicio y solicite frases de contraseña de claves SSH.

Sin embargo, para la última fila, tendríamos que iniciar un ssh-agent desde VSCode y establecer las variables adecuadas.

Voluntarios

Si alguien está dispuesto a probar esto, puede clonar mi fork (https://github.com/hashhar/vscode), cambiar a la rama git-ssh-key compilarlo y ejecutarlo. Intente comprobar lo que sucede en todas las combinaciones de la tabla anterior. Para mantener el ruido aquí al mínimo, puede comentar sobre este tema .

@hashhar El process.env completo siempre se pasa a Git al generarlo:

https://github.com/Microsoft/vscode/blob/master/extensions/git/src/git.ts#L383

¿No se pasan esas variables sin su fragmento?

@joaomoreno Está bien. Profundizar me muestra dos problemas.

  1. VSCode aparentemente no usa la variable SSH_ASKPASS. Está codificado en '/ usr / lib / ssh-ssh-askpass'. Básicamente, el único problema es que VSCode no ayuda a Git diciéndole cómo iniciar un mensaje para obtener la frase de contraseña de la clave ssh del usuario.

La mayoría de las herramientas en Linux proporcionan un programa enlazado simbólicamente a '/ usr / lib / ssh / ssh-askpass' pero muchas no lo hacen. Entonces ese es un problema que creo que la gente está golpeando.

He podido usar VSCode con SSH siempre que la clave ssh ya se haya agregado al llavero de claves ssh-agent.

Creo que he sido estúpido.

QUE HACER:

  1. Extienda vscode-askpass.ts, etc. para ssh también.
  2. Inicie ssh-agent si aún no se está ejecutando. Esto es solo un problema de conveniencia, de lo contrario, tendría que ingresar la frase de contraseña para cada operación de git.

Lamento no haber trabajado a fondo.

No te preocupes, ¡es genial que estés saltando sobre esto! 👍

He estado encontrando este error por un tiempo y pensé que era yo. ¿Algún progreso más en esto?

+1

+1

+1

+1

¡Por favor, detenga el spam! Utilice el botón de suscripción y el botón de reacción y no escriba comentarios tan inútiles.

Yo también tengo el mismo problema.

image

Curiosamente, para mí esto funciona en Git Bash, pero no en Bash para Windows (donde obtengo el error Permission denied (publickey) ):

$ eval `ssh-agent`
$ ssh-add /path/to/key
$ code

Puedo verificar que la clave SSH funciona sshing directamente al control remoto en ambos casos; la única diferencia que puedo ver es que al iniciar Bash para Windows, VSCode advierte que no puede determinar el directorio de trabajo actual.

El mismo problema aquí, he probado casi todas las soluciones sugeridas.

Estoy en MacOs

@DavidBabel Estoy en MacOs y evito temporalmente el problema usando la clave ssh sin contraseña ...

@letsdevus Gracias por la ayuda, pero lamentablemente no es factible en un contexto profesional

La única forma que encontré para hacerlo funcionar fue:

  1. Instalar PuTTY suite
  2. Configure plink como el backend SSH de Git (con la variable de entorno GIT_SSH )
  3. Agregue a PuTTYgen su clave de acceso
  4. Antes de todas las operaciones, en un símbolo del sistema, use plink para conectarse al servicio que desea usar

Esto hace el truco.

Tiene el mismo problema y, a medida que vuelve a intentarlo, también golpea el rendimiento de VSCode 👎

Yo mismo me encontré con este problema. Afortunadamente, la solución (iniciar el código desde el shell) me funciona, pero sería bueno si se solucionara el problema.

También me encontré con esto, la solución de masilla parece ayudar, pero preferiría no tener masilla en absoluto.

También estoy lidiando con este problema. Configuré una cuenta separada para el trabajo y tengo una cuenta personal. He estado trabajando mucho con archivos de trabajo últimamente. Puedo pasar, pero tengo que ingresar la contraseña cada vez. No es un asesino, pero es mucho menos productivo.

Es un poco decepcionante que intentar clonar un repositorio usando la interfaz de usuario de VSC no funcione usando una URL de git estilo ssh. Para que conste, utilizo una clave SSH protegida con contraseña y, con frecuencia, no estoy ejecutando el agente SSH. Encuentro la solicitud de contraseña adicional para desbloquear mi clave en realidad un poco tranquilizador, especialmente cuando empujo los cambios. :-) No es enorme, porque la línea de comando funciona bien para mí (para el registro, estoy ejecutando código VS en macOS).

@gdamore entonces, realmente funciona para ti, sin un agente ... Pero estamos hablando de Windows. 😝
De todos modos, ¿cuál es el nombre del archivo de la clave SSH? ¿Es estándar? ¿O VSCode es lo suficientemente bueno como para encontrar el archivo adecuado?

Ejecuto VScode principalmente en macOS, como se indica. No tengo idea de cómo funciona esto en Windows; No me comprometo desde Windows, y en su lugar confío en sistemas de archivos compartidos (mi instancia de desarrollo de Windows se ejecuta como invitado dentro de una máquina virtual en mi mac).

También recibo este error. no hay ningún problema en la línea de comandos, pero no se puede realizar ninguna actividad de git dentro de la propia aplicación

hacer que vscode sea inútil como git ide en un contexto de trabajo

Pude hacerlo funcionar siguiendo esta publicación de blog:

http://www.cgranade.com/blog/2016/06/06/ssh-keys-in-vscode.html

El mismo problema en OSX con claves protegidas por contraseña.

Solución simple:

Agregue una variable de entorno de usuario llamada GIT_SSH con ruta a C:\Program Files\PuTTY\plink.exe (después de configurar la ruta a la clave privada usando tortoise git )

Esto debe solucionarse, aunque no hace que VS Code sea un editor diario. : / ¿Alguna información sobre el progreso del problema?

Me encantaría que vscode obtenga las credenciales ssh de ssh-add .

Por ejemplo, el árbol de origen puede detectar las credenciales disponibles (¿utilizando osxkeychain?), Sin ninguna configuración adicional.

git -c diff.mnemonicprefix=false -c core.quotepath=false -c credential.helper=sourcetree commit -q -F /var/folders/_0/bvqq9l5d2ngg0stvkf53jrbr0000gn/T/SourceTreeTemp.ccbSGv 


git -c diff.mnemonicprefix=false -c core.quotepath=false -c credential.helper=sourcetree push -v --tags --set-upstream origin refs/heads/master:refs/heads/master 
Pushing to [email protected]:hanxue/gif-is-jif.git
To github.com:hanxue/gif-is-jif.git
   4eed265..762069a  master -> master
updating local tracking ref 'refs/remotes/origin/master'
Branch master set up to track remote branch master from origin.
Completed successfully

Hoy me enfrenté a este problema, estoy en Linux Mint. Usé llavero .

sudo apt install keychain

eval 'keychain --eval SSHKEY'
y eso es.

@ Silentz0r ¿dónde ejecutó el último comando?

@ValentinH en su shell, lea el ejemplo en el enlace.

¡Chicos, esto solo está esperando a que un codificador valiente proporcione un PR!

En OSX, lo soluciono gracias a https://github.com/jirsbek/SSH-keys-in-macOS-Sierra-keychain :

En ~/.ssh crea config archivo con el siguiente contenido:

Host * (asterisk for all hosts or add specific host)
  AddKeysToAgent yes
  UseKeychain yes
  IdentityFile <key> (e.g. ~/.ssh/userKey)

@joaomoreno
No estoy seguro de lo "valiente" que soy, pero soy un poco fan de SSH.
Trabajaré en un PR para diciembre.

Todos los ciudadanos preocupados ...

Después de una prueba de configuración rápida, parece que una configuración de Windows 7 es bastante sencilla (consulte GIT_SSH y otros comentarios). Creo que los comentarios de que OS X usa llaveros es igualmente fácil.
La configuración es básicamente un problema de configuración externa. VSC no necesita ningún cambio de configuración o función para usar SSH, git llama al cliente SSH. Lo siento si me estoy perdiendo algo obvio.

Aparte de un asistente para la configuración, estoy tratando de determinar qué sería realmente beneficioso agregar al código.
Un comentario menciona el uso de más de una clave que podría requerir cambiar la variable de entorno presumiblemente en función de la configuración del espacio de trabajo. Incluso todo eso puede ser manejado por el agente. No creo que tenga sentido hacer algo como agregar ssh al código, ya que git se encarga de esto de manera bastante directa.

En cuanto a la gestión de credenciales: eso realmente quiere ser manejado por un agente seguro como
pagent / llavero, etcétera.

Comentarios

"VSC no necesita ninguna configuración o cambios de funciones para usar SSH, git llama al cliente SSH. Lo siento si me estoy perdiendo algo obvio".

(En Windows)

Lo que pasa
Si ejecuto VS Code desde un acceso directo y no descargué un software de terceros ni realicé alguna configuración de línea de comandos, entonces no funciona con claves SSH cifradas.

Por otro lado, si abro Eclipse y me conecto a un repositorio de Git, me pedirá la contraseña de mis claves.

Esperado
Una nueva instalación de VSCode, en un sistema sin otro software instalado, debería mostrar un cuadro de mensaje solicitando mi contraseña, y luego usarlo para descifrar mis claves y usarlas para conectarse al repositorio remoto.

@cleidigh SourceTree funciona automáticamente sin seguir las instrucciones de @ItachiSan , mientras que el código requiere esa configuración. Quizás podríamos hacer lo que sea que estén haciendo.

@andrewducker
@PrincipianteVida
Miré un poco a Eclipse y al árbol de origen. Desafortunadamente, actualmente no puedo instalar ninguno de estos en mi sistema, por lo que mi conocimiento y experiencia están limitados por Google ;-) Tenga esto en cuenta si me falta algo. Aquí hay una sinopsis / diferencia básica:

Eclipse: complemento EGit: contiene el cliente git de Java, el cliente ssh parece ser interno, requiere importación de clave si existe clave

SourceTree: cliente gráfico de obtención, requiere un cliente ssh externo (de la captura de pantalla a continuación se asume plink en Windows) @BeginnerForLife Creo que esta configuración no está tan lejos de los requisitos actuales.

image

VSC: Requiere git / ssh externo

@andrewducker su descripción rastrea mi comentario, a menos que Code implemente tanto git como SSH (incluida la generación y administración de claves), no estoy seguro de que haya mucho en el medio. Si bien esto podría hacerse, soy escéptico de que el equipo quiera incorporar ambos. @joaomoreno puede hablar de eso.
Desde un punto de vista práctico, me gustaría señalar lo siguiente:

  • La experiencia de git "fácil de usar y lista para usar" está más alineada con el uso de HTTPS integrado, pero aún requiere un git externo
  • Para aquellas situaciones de trabajo donde se requiere SSH, diría que es muy probable que exista una política y ssh
    herramientas ya en vigor, eso es lo que he experimentado en las distintas corporaciones para las que he trabajado.
  • Suponiendo que uno esté de acuerdo con lo anterior, el acoplamiento a herramientas externas sería el escenario más probable que
    configurar ssh / git desde cero o de forma independiente.
  • Para ser claros, de ninguna manera quiero insinuar que ssh no sea útil y / o no sea necesario, solo digo que VSC funciona y funciona con bastante facilidad apuntando git a un cliente SSH local.
  • Creo que esto podría lograrse con una extensión

Repitiendo, sin ambos git / ssh internos al código, todavía tengo que determinar una opción menor. Estoy absolutamente dispuesto a trabajar en esto, pero tiene que alinearse con los objetivos del equipo y recibir la bendición de @joaomoreno en particular.

@cleidigh No entiendo cuál es el plan.

@joaomoreno
Esperaba más respuestas de otras partes, pero necesito su opinión / preferencia sobre posibles planes.
Para ser claros, Code parece funcionar bien para el acceso a la clave privada SSH a través de git con solo un poco de configuración externa. Algunos aquí sugieren una mayor integración y una mejor experiencia de desembolso personal.

Algunos enfoques posibles:

1- Implementar git / ssh set up helper / Wizard - Encontrar ssh, configurar GIT_SSH - adición interna
2- Igual que 1 implementado como extensión
3- Extienda arriba para coordinar la descarga de SSH / git para la configuración inicial
4- Implementar cliente / herramientas SSH - adición interna
5- Igual que 4 implementado como extensión
6- Implementar git / SS H internamente, similar a eclipse / egit

Creo que el número 1 es suficiente (quizás el 3) a pesar de que no implementa todo lo que la gente está hablando. Las opciones 4 a 6 parecen un esfuerzo excesivo y un gran cambio en los componentes clave.

Preferencias @joaomoreno / all?

Podría ser una buena idea intentar usar VS Code con Git en Windows e identificar los puntos débiles. Para mí, el principal problema es la autenticación.

La opción 1 es definitivamente mi favorita.

@PrincipianteVida
Si tuviéramos un descubrimiento de ayuda / ssh y lo configuramos, ¿eso ayuda?
Configuré ssh para git para Windows, además de instalar el cliente (ya lo tenía), acabo de configurar GIT_SSH
También se agregó huella digital clave con agente.

Centrándose en la opción uno por preferencia de @joaomoreno :

  • Detectar el espacio de trabajo con el repositorio usando ssh, iniciar el ayudante
  • Proporcione el comando para comenzar a ayudar en cualquier momento
  • Busque SSH instalado, verifique que la variable de entorno esté configurada
  • Advertir al usuario si no se encuentra SSH, sugerir / señalar clientes apropiados
  • oferta para establecer una variable de entorno
  • solicitar al usuario la clave privada para usar y agregar la huella digital al agente

Creo, pero no puedo prometer que todo lo anterior es práctico. Asumiendo que nadie tiene otra idea brillante
Creo que sería bueno básicamente hacer un prototipo de lo anterior.

Comentarios adicionales son bienvenidos.

Sí, creo que esos puntos deberían cubrirlo. Ese último en particular (preguntar al usuario ...) debería resolver los problemas de muchas personas.

@PrincipianteVida
Gracias. Voy a comenzar con este enfoque y espero que otros intervengan con cualquier otra aportación.
Creo que publicaré un puntero en mi repositorio antes de hacer un PR para ver lo que piensa la gente. Vuelve a consultar aquí
para seguir mi progreso.

Estoy de acuerdo en que (1) es el mejor enfoque. Y es básicamente lo que hago en este momento: iniciar ssh-agent si aún no se está ejecutando y configurar las variables de entorno, luego iniciar VS-Code desde esa línea de comandos, para que recoja las variables de entorno.

Si VS Code puede verificar que SSH-Agent aún no se está ejecutando y luego iniciarlo si es necesario, sería genial.

Utilizo el módulo Git de PowerShell para hacer todo esto, pero usa la lógica de:
https://help.github.com/articles/working-with-ssh-key-passphrases/
Así que, con suerte, eso funcionará, desde el punto de vista de un nodo (aunque presumiblemente deberías comprobar que funciona en todos los sistemas operativos)

@andrewducker cc: todos

Actualización: tuve que volver a un PR anterior, pero de hecho he progresado mucho en esto:

  • Además de cosas sencillas como verificar / configurar GIT_SSH, verificar el cliente git, el agente clave
  • También descubrió que parece que los agentes clave de Windows permitirán adiciones clave después del inicio
  • Creo que podemos instalar nuevas claves en Código lanzando el agente de claves que a su vez solicitará una frase de contraseña.
  • El siguiente experimento es si puedo detectar un inicio de sesión SSH fallido

Debería poder volver a esto en un día o dos.

Lo mismo aquí en macOS High Sierra con una clave privada predeterminada que está protegida por contraseña. La frase de contraseña se almacena en el llavero del sistema operativo durante una sesión de inicio de sesión. Cuando reinicio mi mac, tengo que volver a ingresarlo antes del primer git pull / git push para mayor seguridad y la frase de contraseña ya no se solicita desde entonces hasta que cierre la sesión. Así es como se comporta la terminal cuando interactúo con un repositorio remoto por primera vez:

$ cd /path/to/repo
$ git pull
Enter passphrase for key '/Users/me/.ssh/id_rsa':
[me typing passphrase and pressing enter]
Updating 3e97c76..65a959c

Sin embargo, cuando VSCode está tratando de extraer algo después de un reinicio, aparece este error:

screen shot 2018-02-12 at 11 05 09

La solución es abrir una terminal, navegar hasta el repositorio y escribir git pull . No es un desastre, pero podría mejorarse.

__UPD: __ Curiosamente, cuando se trata de solicitar una frase de contraseña de la clave GPG para firmar nuevas confirmaciones, VSCode funciona rápidamente y muestra una ventana emergente con un campo de entrada.

¿Cuál es el estado de esto?

Actualmente, se muestra el error Git: [email protected]: Permission denied (publickey). .

Los usuarios que crearon un par de claves en ~\.ssh pueden autenticarse a través de la línea de comando ingresando la frase de contraseña para el par de claves, pero no desde VS Code.

@cleidigh alguna suerte?
¿Alguien tiene alguna idea de cómo podemos interceptar el evento de solicitud de contraseña? Supongo que una vez que lo tengo interceptado, puedo tener la oportunidad de hacer lo que hace atom y proporcionar un cuadro de texto para usar. Pero cajero automático, estoy perdido en ideas.

Tuve todo tipo de problemas con las credenciales, hasta que me di cuenta de que el problema no es con VSCode sino con el medio ambiente. Si ha configurado correctamente ssh, git, etc., no tendrá ningún problema, eso es cierto tanto para Linux como para Windows. Y si algo sale mal, siempre puedes forzarlo a través del terminal.

No necesito configurar el entorno para otros IDE.
En Eclipse, por ejemplo, puedo ejecutarlo directamente, y cuando necesite acceder a un repositorio git remoto, me pedirá la contraseña para descifrar mis claves SSH.
Visual Studio Code debería hacer lo mismo.

Todo: actualización
Si bien logré bastante progreso en esto, tuve que dejarlo de lado por varias razones, por lo que no he avanzado mucho desde enero. Lo siento por eso. Espero poner esto en marcha para mayo.

Para @ john681611 @andrewducker

Como se describió anteriormente en el hilo, el único problema fundamental que no se puede implementar "limpiamente"
es la solicitud o cualquier tipo de gestión de las claves. Esto se debe a que Code se basa en GIT externo y
GIT se basa en los sistemas SSH. Sin el código que los implemente internamente (como eclipse), tenemos opciones limitadas para interactuar con estos componentes externos.

Mi prototipo actual puede hacer lo siguiente:

  • compruebe si algún repositorio utiliza SSH si así se inició el Asistente de configuración a continuación:
  • comprobar y solicitar la variable de entorno GIT_SSH
  • comprobar cliente SSH
  • Forzar el diálogo de contraseña del cliente si es posible (WIP) Tenga en cuenta que este mensaje no es el código del cliente

Estuve de acuerdo en que sería bueno que @andrewducker respondiera como Eclipse, pero esto significaría que el equipo tendría que implementar una parte importante de la funcionalidad que ya se está ocupando.

Nota: Otro enfoque podría ser si pudiéramos hacer que el cliente GIT oficial manejara más parámetros de seguridad que podríamos usar para controlar el SSH. Eso mantendría la arquitectura actual igual

Todo / Actualizar

He estado trabajando en la última y más importante pieza del prototipo: una corrección askpass para permitir que Code proporcione un indicador de interfaz gráfica de usuario de frase de contraseña nativa. Actualmente, creo que esto será posible y, junto con el agente ssh apropiado para la plataforma, las credenciales se almacenarán de manera normal.

Mi problema es que no puedo hacer que SSH o GIT respeten SSH_ASKPASS, GIT_ASKPASS o core.askpass en GIT Bash o CMD en Windows. el indicador del terminal es lo único que se muestra. Como prueba más básica, configuré uno o todos estos en el git-gui - askpass incorporado, pero esto tampoco funciona a pesar de que el programa ha sido ejecutable si se probó desde la línea de comando.

¿Alguien ha utilizado estos métodos para cambiar la entrada de la frase de contraseña en Windows o en cualquier otro escenario relevante?

Sourcetree también muestra una terminal. No está tan mal.

Para agregar a la solución de @ValentinH en macOS 10.12 Sierra y UseKeychain soluciona el problema en mi máquina (macOS 10.13.5 High Sierra Developer Beta, 17F70a). La directiva AddKeysToAgent no parece ser necesaria. Esta configuración me funciona:

Host github.com
  HostName github.com
  IdentityFile /path/to/your/ssh/private/key
  UseKeychain yes

¿Cuál es el estado de esto?

'14581: VS Code requiere que las claves git ssh se llamen "id_rsa"' se cerró como un duplicado de este problema. No estoy seguro de ver cómo esto es un duplicado: "Soporte git con contraseña de clave privada". Estos parecen temas separados.

EDITAR: esto fue solo una solución para la instancia única del terminal que estaba ejecutando; incluso abrir una nueva terminal en la misma sesión de código resultó en el error de clave pública nuevamente

Parecía que mi ssh-agent había muerto en algún momento o había olvidado mi clave no "id_rsa" que uso para git. Así que simplemente corrí:

eval "$(ssh-agent -s)"
ssh-add path/to/my/github/ssh/private/key

y todo volvió a la normalidad. Esta es la secuencia de comandos que GitHub le dice que ejecute al configurar una nueva clave SSH de todos modos.

Admito que no he leído la mayor parte de este hilo, pero para mí funcionó.

@cleidigh @joaomoreno esto puede no ser un error, sino que configuró incorrectamente las teclas ssh, particularmente en macOS. Sierra cambió radicalmente la forma en que las claves se mantienen en sesión

Lo resuelvo cuando regenero una nueva clave ssh sin la frase de contraseña. Supongo que tal vez vscode no puede abrir un shell para permitirle escribir una frase de contraseña.

Solo necesitaba agregar mi clave al llavero de Mac con ssh-add -K ~/.ssh/id_rsa ; reemplace id_rsa con su clave si no está usando la predeterminada.

Una solución alternativa para Windows 10:

  1. Haga que Git use el OpenSSH que viene con Windows en lugar del que viene con Git.
    git config --global core.sshCommand "C:/Windows/System32/OpenSSH/ssh.exe"
  2. Configure el servicio ssh-agent (no el que viene con git) para que se ejecute automáticamente.
    Abra el Administrador de tareas, pestaña Servicios, haga clic en Abrir servicios.
    Busque el Agente de autenticación de OpenSSH, abra las propiedades, configure el Tipo de inicio en Automático, presione Aceptar.
    También inicie el servicio o reinicie su computadora.
  3. Agregue su clave protegida por contraseña al agente.
    ssh-add
    Debería recoger automáticamente las claves almacenadas en C: \ Users \% USERNAME% \. Ssh, que es donde ssh-keygen las crea.
    Ingrese su (s) contraseña (s) cuando se le solicite.

Nota: Si, al instalar Git para Windows, seleccionó la opción para agregar comandos bash a PATH, el comando ssh-add podría apuntar al ejecutable incorrecto. Si es así, puede ejecutar manualmente el incluido para agregar su clave al agente:
C:\Windows\System32\OpenSSH\ssh-add.exe

Ahora, el agente de autenticación OpenSSH integrado se ejecutará al iniciarse con su clave protegida con contraseña desbloqueada, y Git usará Windows OpenSSH en lugar del propio. Por lo tanto, no es necesario que escriba su contraseña cada vez, no es necesario iniciar manualmente el agente ssh y no es necesario iniciar VS Code desde la línea de comando.

Exactamente como LynnScarlett notó, no hay forma de ingresar la frase de contraseña para la clave y el uso del llavero no es seguro, entonces ¿VSC agregará soporte para esta característica básica?

No veo cómo Keychain no es seguro. Además, los IDE populares permiten la entrada de contraseñas, por lo que VSC podría admitir ambos métodos de entrada.

Quise decir ssh-agent, podría estar confundiendo dos cosas, no estoy seguro :)

Ssh-agent solo es "inseguro" en el sentido de que carga la clave por sesión. Tiene otros problemas si tiene una computadora comprometida

Esto explica la inseguridad de usar ssh-agent con más detalle:
http://rabexc.org/posts/pitfalls-of-ssh-agents
¡Salud!

Todo esto se reduce a: no confíe su máquina a otra persona que tenga acceso de root, lo que no debería hacer de todos modos. Así que nuevamente: si ssh-agent se ve comprometido debido a los detalles de ese artículo, tiene problemas mayores

La solución

Versión de VS Code: Code 1.27.2 (f46c4c4, 2018-09-12T16: 17: 45.060Z)
Versión del sistema operativo: Windows_NT x64 10.0.17134
git versión 2.19.0.windows.1

Sigue sin funcionar.

Han pasado dos años y todavía no hay solución para esto. El mismo problema se aplica a Atom, así que supongo que esto no es algo que se pueda agregar fácilmente. Todo lo que realmente quiero es Push (con contraseña) en el menú desplegable Más acciones ... git en el panel de control de código fuente.

Estoy feliz de escribir la frase de contraseña en cada pulsación, simplemente no quiero tener que ir a la línea de comandos y escribir comandos git sin procesar.

Han pasado dos años y todavía no hay solución para esto. El mismo problema se aplica a Atom, así que supongo que esto no es algo que se pueda agregar fácilmente. Todo lo que realmente quiero es Push (con contraseña) en el menú desplegable Más acciones ... git en el panel de control de código fuente.

Estoy feliz de escribir la frase de contraseña en cada pulsación, simplemente no quiero tener que ir a la línea de comandos y escribir comandos git sin procesar.

Intente clonar el repositorio con https en lugar de ssh. Eso hace que VS Code me pida nombre de usuario y contraseña.

Acabo de llegar de Atom para verificar Github Pull Request en VS Code y lo primero que pienso es

Asegúrese de tener los derechos de acceso correctos.
y el repositorio existe.

git show: index.html
git pull --tags origin master
git show: index.html
[email protected] : Permiso denegado (
fatal: no se pudo leer desde el repositorio remoto.
Asegúrese de tener los derechos de acceso correctos.
y el repositorio existe.

por lo que no usaré la opción con solo la clave ssh sin escribir también mi contraseña.
Así que volveré al código VS y a la extensión Github Pull Request más adelante.
Me encanta lo que ha hecho la comunidad hasta ahora y espero poder usar esto en el futuro con mi preferencia de seguridad.

Intente clonar el repositorio con https en lugar de ssh. Eso hace que VS Code me pida nombre de usuario y contraseña.

Gracias, eso también funciona para mí. Y si instala el administrador de credenciales de Git para Windows y escribe el siguiente comando en el shell de git bash en el código VS:
git config --global credential.helper manager
Luego, sincroniza y extrae el trabajo sin tener que volver a ingresar la identificación de usuario y la contraseña de Gitlab.

Sería bueno si uno pudiera hacer lo mismo para SSH, dado que esa es la ruta de acceso al repositorio de Gitlab predeterminada.

@whatsyourgithub , me gustaría usar su solución (se ve mejor que "iniciar VSC a través del símbolo del sistema" primitivo y con errores) pero recibo un mensaje de error VSC:
Git: no existe tal identidad: /C/Users/myuser/.ssh/myrsaKey_rsa
Aunque el archivo esté ahí.
Y, otra cosa ... al probar C: \ Windows \ System32 \ OpenSSHssh-add.exe, también obtengo el archivo o directorio No tal.
Estoy usando el PowerShell VSCode para escribir estos comandos
¿Algunas ideas?

Cambié a https en lugar de SSH. Esa es la única forma en que podría hacer que funcionara bien. Curiosamente, Github realmente recomienda usar https en lugar de SSH.

@whatsyourgithub , me gustaría usar su solución (se ve mejor que "iniciar VSC a través del símbolo del sistema" primitivo y con errores) pero recibo un mensaje de error VSC:
Git: no existe tal identidad: /C/Users/myuser/.ssh/myrsaKey_rsa
Aunque el archivo esté ahí.
Y, otra cosa ... al probar C: \ Windows \ System32 \ OpenSSHssh-add.exe, también obtengo el archivo o directorio No tal.
Estoy usando el PowerShell VSCode para escribir estos comandos
¿Algunas ideas?

Primero intentaría abrir Powershell fuera de VS Code, aunque no debería importar.

Se supone que OpenSSH viene instalado con las últimas versiones de Windows 10. Intente actualizar.
Si eso no funciona, intente ir a Configuración> Aplicaciones> Aplicaciones y funciones> Administrar funciones opcionales> Agregar una función y busque OpenSSH.

@whatsyourgithub , me gustaría usar su solución (se ve mejor que "iniciar VSC a través del símbolo del sistema" primitivo y con errores) pero recibo un mensaje de error VSC:
Git: no existe tal identidad: /C/Users/myuser/.ssh/myrsaKey_rsa
Aunque el archivo esté ahí.
Y, otra cosa ... al probar C: \ Windows \ System32 \ OpenSSHssh-add.exe, también obtengo el archivo o directorio No tal.
Estoy usando el PowerShell VSCode para escribir estos comandos
¿Algunas ideas?

Primero intentaría abrir Powershell fuera de VS Code, aunque no debería importar.

Se supone que OpenSSH viene instalado con las últimas versiones de Windows 10. Intente actualizar.
Si eso no funciona, intente ir a Configuración> Aplicaciones> Aplicaciones y funciones> Administrar funciones opcionales> Agregar una función y busque OpenSSH.

Hola.
Gracias por responder.
OpenSSH (cliente) ya estaba instalado.
Repetí el procedimiento usando el PowerShell independiente pero sigo recibiendo el mensaje de error
no such identity: /C/Users/<user>/.ssh/RSAPRIVKEY_rsa: No such file or directory
¿Estaría esto relacionado con la propiedad de RSAPRIVKEY_rsa? No emití la clave usando powershell, pero la copié de otro lugar (de todos modos, funciona con el árbol de origen o con la GUI de Git)

@whatsyourgithub , me gustaría usar su solución (se ve mejor que "iniciar VSC a través del símbolo del sistema" primitivo y con errores) pero recibo un mensaje de error VSC:
Git: no existe tal identidad: /C/Users/myuser/.ssh/myrsaKey_rsa
Aunque el archivo esté ahí.
Y, otra cosa ... al probar C: \ Windows \ System32 \ OpenSSHssh-add.exe, también obtengo el archivo o directorio No tal.
Estoy usando el PowerShell VSCode para escribir estos comandos
¿Algunas ideas?

Primero intentaría abrir Powershell fuera de VS Code, aunque no debería importar.
Se supone que OpenSSH viene instalado con las últimas versiones de Windows 10. Intente actualizar.
Si eso no funciona, intente ir a Configuración> Aplicaciones> Aplicaciones y funciones> Administrar funciones opcionales> Agregar una función y busque OpenSSH.

Hola.
Gracias por responder.
OpenSSH (cliente) ya estaba instalado.
Repetí el procedimiento usando el PowerShell independiente pero sigo recibiendo el mensaje de error
no such identity: /C/Users/<user>/.ssh/RSAPRIVKEY_rsa: No such file or directory
¿Estaría esto relacionado con la propiedad de RSAPRIVKEY_rsa? No emití la clave usando powershell, pero la copié de otro lugar (de todos modos, funciona con el árbol de origen o con la GUI de Git)

OKAY. Resuelto ... En el archivo ./ssh/config tenía la ruta a la clave ssh C: \ Users \.ssh \ RSAKEY_rsa y lo cambió a ~ / .ssh / RSAKEY_rsa
Luego solo tenía que registrar la llave y eso fue todo.
Gracias

@whatsyourgithub , siento molestar de nuevo. Estoy tratando de ayudar a mi colega y no lo está logrando (hacer lo que sugirió anteriormente funciona para mí, pero no para él). Estos son los síntomas:
Puede realizar una búsqueda de git desde la consola PS, pero cuando presiona o sincroniza usando gitacora (el complemento para sincronizar automáticamente, que también uso sin problemas), recibe el siguiente mensaje de error:
Permission denied (publickey).
Sabemos que la clave ha sido agregada por OpenSSH porque C:\Windows\System32\OpenSSH\ssh-add.exe -L recupera su clave pública y porque si usamos el comando git fetch de PS, funciona.
¿Alguna idea de cómo puede ayudarlo a diagnosticar / corregir?

@whatsyourgithub , siento molestar de nuevo. Estoy tratando de ayudar a mi colega y no lo está logrando (hacer lo que sugirió anteriormente funciona para mí, pero no para él). Estos son los síntomas:
Puede realizar una búsqueda de git desde la consola PS, pero cuando presiona o sincroniza usando gitacora (el complemento para sincronizar automáticamente, que también uso sin problemas), recibe el siguiente mensaje de error:
Permission denied (publickey).
Sabemos que la clave ha sido agregada por OpenSSH porque C:\Windows\System32\OpenSSH\ssh-add.exe -L recupera su clave pública y porque si usamos el comando git fetch de PS, funciona.
¿Alguna idea de cómo puede ayudarlo a diagnosticar / corregir?

Parece que su clave no está vinculada a su cuenta de github, o su cuenta de github no se agrega como colaborador en el repositorio.

Parece que su clave no está vinculada a su cuenta de github, o su cuenta de github no se agrega como colaborador en el repositorio.

Estoy administrando el servidor bitbucket y agregué su clave de publicación allí (y en realidad puede acceder a buscar y presionar cuando usa la línea de comando a través de PowerShell).
¿O es algo que no capto de tu respuesta?

Solo necesitaba agregar mi clave al llavero de Mac con ssh-add -K ~/.ssh/id_rsa ; reemplace id_rsa con su clave si no está usando la predeterminada.

macOS High Sierra vs código
[email protected] : Permiso denegado (
fatal: no se pudo leer desde el repositorio remoto.

Etiquetar esto porque solucionó el problema con el git integrado que no funcionaba dentro de vscode aunque funcionó perfectamente bien desde la línea de comandos.

@whatsyourgithub Parece que funciona a través de git config --global core.sshCommand "C:/Windows/System32/OpenSSH/ssh.exe" después de generar un nuevo id_rsa.

  1. Pero la clave tiene una contraseña, cuando presiono no hay un diálogo de Windows que me permita ingresar mi contraseña.
  2. Si utilizo una clave que salió en mi PC a través de ssh-add .ssh\id_rsa , hay un error. ¿Por qué no puedo agregar la clave? Quiero usar la misma clave que agregué antes.
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
Permissions for 'D:/ablob/.ssh/id_rsa' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "D:/ablob/.ssh/id_rsa": bad permissions
[email protected]: Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

SO: Windows 10
VSC: 1,28

¿Alguna actualización?

¿Tiene planes de manejar esto en un futuro próximo?

De acuerdo con la documentación de VS Code (https://code.visualstudio.com/docs/editor/versioncontrol):

¿Puedo usar la autenticación SSH Git con VS Code?
Sí, aunque VS Code funciona más fácilmente con claves SSH sin una frase de contraseña. Si tiene una clave SSH con una frase de contraseña, deberá iniciar VS Code desde un indicador de Git Bash para heredar su entorno SSH.

Esta página fue fechada el 12/12/2018.

Así que acabo de generar nuevas claves ssh sin una frase de contraseña (dejándola vacía cuando se le solicite y sobrescribiendo las anteriores), las agregué a mi cuenta en GH y también agregué la identidad al ssh-agent ejecutando ssh-add.exe ~\.ssh\id_rsa . Ahora todo funciona.

Si otros pueden confirmar esto, sugeriría cerrar este tema ya que la documentación oficial de VS Code ya establece explícitamente que solo funcionará con frases de contraseña al iniciar VS Code desde git-bash.

Si otros pueden confirmar esto, sugeriría cerrar este tema ya que la documentación oficial de VS Code ya establece explícitamente que solo funcionará con frases de contraseña al iniciar VS Code desde git-bash.

Bueno, la documentación dice "más fácilmente", no es que no funcione en absoluto cuando las claves tienen frases de contraseña, y su sugerencia de iniciar VS Code desde un indicador de Git Bash solo es necesaria para aquellos que usan Git-for-Windows ' Agente SSH para administrar sus claves.

De hecho, puedo confirmar que uso el agente SSH de Windows (no el que viene con Git para Windows), cargar mi clave SSH (protegida por contraseña) en él y luego ejecutar VS Code normalmente (no desde ningún símbolo del sistema específico) y Puedo hacer push / pull con éxito en repositorios que requieren mi clave.

Confirmo que al abrir VS Code a través de git bash se le pedirá la clave ssh y en el código VS se le pedirá su contraseña ssh en la terminal.

Tuve un problema similar con VSCode en Windows 10 que no empujaba / tiraba de _ ssh: // repo_ mientras era posible en la terminal.

Estoy usando CMDer con git-for-windows y VSCode se configuró con git.path apuntando a estos binarios. También tengo el archivo de configuración ssh en el directorio _% USERPROFILE% \. Ssh_ con todas las opciones necesarias y el archivo de identidad configurado como archivo de clave pública. KeePass con KeeAgent está sirviendo las llaves.

El procedimiento mencionado anteriormente para ejecutar primero el terminal (CMDer) y luego ejecutar el código desde él funciona bien, pero no me gustó. Así que probé (con éxito) otro enfoque:
En el directorio git.exe he creado el archivo cmd:

<strong i="10">@echo</strong> off
set SSH_AUTH_SOCK=/path/to/my/sock.file
%~dp0git.exe %1 %2 %3 %4 %5 %6 %7 %8 %9

(La ruta SSH_AUTH_SOCK debe tener barras diagonales) y la opción git.path señalada en el código.

Ahora Code comienza, parece leer el archivo _ ~ / .ssh / config_ sin ningún "truco" adicional, y es capaz de usar el agente.

Editar:
Supongo que establecer la variable de entorno SSH_AUTH_SOCK globalmente también ayudaría, ya que el costo de las claves es accesible para todas las aplicaciones ...

"you'll need to launch VS Code from a Git Bash prompt to inherit its SSH environment."

Una de las cosas más mediocres que he escuchado de Microsoft; No debería tener que iniciar VS Code desde una línea de comando específica para que ssh funcione; tal vez intente implementar una solución adecuada.

¿reserva? ¿De Verdad?

Esta emisión me hizo cambiar a powershell y posh-git, que funciona razonablemente bien. Para que el agente ssh funcione sin problemas, tuve que agregar lo siguiente a $profile.CurrentUserAllHosts (el C:\Users\USERNAME\Documents\WindowsPowerShell\profile.ps1 ).

Import-Module posh-git
Set-Alias ssh-agent "$env:ProgramFiles\git\usr\bin\ssh-agent.exe"
Set-Alias ssh-add "$env:ProgramFiles\git\usr\bin\ssh-add.exe"
Set-Alias ssh "$env:ProgramFiles\git\usr\bin\ssh.exe"
Start-SshAgent -Quiet

Si otros pueden confirmar esto, sugeriría cerrar este tema ya que la documentación oficial de VS Code ya establece explícitamente que solo funcionará con frases de contraseña al iniciar VS Code desde git-bash.

Tengo que no estar de acuerdo aquí: este problema se trata de la falta de compatibilidad adecuada con la frase de contraseña SSH en VS Code, y la solución alternativa documentada es simplemente eso: una solución alternativa. Ya existen demasiadas tentaciones para que el usuario perezoso se salte la seguridad de una buena frase de contraseña, por lo que cualquier herramienta moderna debería facilitar la tarea de hacer lo correcto.

De acuerdo con lo que otros han sugerido anteriormente, acabo de crear un archivo de script bash (es decir, projectName.sh ) y escribí lo siguiente en él:
"location/to/Code.exe" "location/to/project"

Ahora todo lo que tengo que hacer es hacer doble clic en el archivo para abrir VSCode y trabajar con un certificado con una frase de contraseña.

Por cierto: en caso de que ayude a otros a encontrar este problema, también tuve que: git config --global http.sslBackend schannel como se describe aquí .

Estoy perplejo de que, después de dos largos años, algo tan básico como "trabajar con git usando ssh usando una clave que TIENE una frase de contraseña" aún no se haya abordado sin usar soluciones alternativas de aspecto desagradable. VSCode es un gran editor en mi humilde opinión, pero esta "característica" es realmente necesaria. Por favor dale prioridad

Aquí hay una publicación antigua que lancé sobre stackoverflow que puede ser útil; una opción es usar el administrador de credenciales de Windows: https://stackoverflow.com/questions/35110079/git-bash-pageant-not-using-keys/43313491#43313491

Supongo que la pregunta es si VSCode debería estar a cargo de manejar las credenciales SSH / HTTPS como administrador del almacén de claves. Parece que esto debería ser manejado por el sistema operativo, un programa de terceros o una configuración adecuada de git que se mezcle con los dos primeros puntos.

Por mucho que me guste el sonido de esta característica, ya parece que Unix y Windows deberían tener formas de manejar este problema sin agregar esto a VSCode.

No estoy seguro de si algo aquí en estos artículos de github ayuda: https://help.github.com/articles/connecting-to-github-with-ssh/
En última instancia, parece que te están diciendo que uses bash en windows / otra alternativa de bash windows, lo que hace que la gente vuelva al mismo problema con una solución alternativa: \

@ctsstc Sí, instalé Git Credentials Manager para Windows, pero por alguna razón, no funciona. Soy consciente de que esto puede no ser responsabilidad de VSCode. Por ejemplo, en Android Studio y los IDE basados ​​en IDEA, solo les importa llamar al binario git, y la única integración que tienen es cuando la operación requiere una frase de contraseña, el IDE la persiste de forma segura y la pasa a Git; tal vez esto sea un buen enfoque. ¿Quizás esto es lo único que les falta?

@ctsstc en desacuerdo, no se puede implementar una interfaz de usuario para un programa CLI -meaning GIT en este caso- y luego afirman que cuando el programa necesita de entrada ya no es su problema; Si no quería que la gente confiara en VC para usar git, entonces no debería haber integrado git desde el principio, no use software a medias, especialmente si se supone que está respaldado por Microsoft, y especialmente no lo haga a medias -según las mejores prácticas de seguridad de décadas de antigüedad, como las claves SSH con frases de contraseña.

Supongo que un punto importante aquí es que Atom recordará las frases de contraseña SSH para los repositorios de git. ¿Seguramente vscode puede hacer lo mismo ya que ambos están basados ​​en el mismo motor de edición?

Supongo que la pregunta es si VSCode debería estar a cargo de manejar las credenciales SSH / HTTPS como administrador del almacén de claves.

No creo que deba, pero tampoco creo que eso sea lo que se pide aquí. Como señaló @Ivanca , VSC ha optado por presentar una interfaz de usuario sobre git, por lo que la pregunta es cuánta funcionalidad de git debe exponerse a través de esa interfaz de usuario. No esperaría que todas las operaciones de git oscuras estén disponibles a través de VSC, pero pull / push son fundamentales; no creo que VSC pueda afirmar que las admite por completo sin proporcionar un pegamento de interfaz de usuario al desafío de la frase de contraseña subyacente.

Entonces, el resultado esperado es que solicite la contraseña. Creo que es una pregunta / característica razonable.

En lugar de mostrar:

Permission denied, please try again.
Permission denied (publickey,password).

Siento que he visto esta funcionalidad recientemente en Mac hace un par de días, pero tal vez no esté implementada en Windows, o tal vez estaba solicitando la contraseña de mi sistema para acceder al almacén de claves del sistema.

Editar, solo probé esto en Mac:

image

Parece que esto es compatible con Mac pero no con Windows (supongo que este problema todavía existe), por lo que la característica es tener paridad entre los dos sistemas operativos.

¿Alguna actualización sobre esto? Han pasado 2 años desde que se informó este problema y todavía no se puede hacer que VSCode funcione con Git SSH:
image

@ctsstc Puedo confirmar que funciona en Mac en la pestaña de terminal. Lo que falta es solicitar una frase de contraseña cuando se utilizan las funciones de extracción / extracción desde la GUI. Simplemente ignora el hecho de que tiene una frase de contraseña en su clave y envía una contraseña nula / nula que hace que falle la operación de git.

Creo firmemente que esto debería abordarse, independientemente de si VSC decide almacenar en caché las credenciales de frase de contraseña. No falle cuando haya una frase de contraseña en la clave rsa, solicite la clave.

¿Cuándo va a pasar?

¿Se va a arreglar esto? Mismo problema en Windows

No parece esperanzado. Me di por vencido y cambié de SSH a https.

Mi solución actual: generalmente tengo una terminal abierta en VSCode de todos modos (usándola para interactuar con npm, etc.), así que solo hago mi git push desde allí. No es así como _debería_ funcionar, pero al menos me pide mi contraseña.

En macOS, agregué esto a mi ~/.ssh/config al final (lo cual es importante, no pongas nada a continuación):

Host *
   AddKeysToAgent yes
   UseKeychain yes 

Luego hice un git pull para que macOS me pidiera mi contraseña ssh. Después de eso, macOS nunca me volverá a pedir la contraseña, por lo tanto, el control de versiones de VSCode está funcionando como debería.

Espero que ayude a alguien.
¡Salud!

Otras soluciones:

  • Use plink de putty en lugar de ssh como git ssh commad, luego use pageant para cargar claves
  • Use git sobre http / https en lugar de git sobre ssh

¿Alguien ha probado alguno de estos en Windows?

https://github.com/PowerShell/openssh-portable

Yo uso win32-openssh, como arriba, como solución temporal presionando git desde la terminal. La falta de reconocimiento de rutas ssh: // es un problema que ya presenté y que está relacionado con esto. Mi caso de uso principal es usar la extensión sshfs con la que git y otras extensiones como python no funcionan porque no saben cómo interpretar ssh: //

¿Hay algún plan para apoyar esto?

Esto sigue siendo un problema. Las soluciones alternativas no son una opción para todos; por ejemplo, otros pueden (potencialmente) acceder a mi máquina y, por lo tanto, no desbloquearé mi llave. En mi caso, git en la línea de comando simplemente pide la contraseña, yo diría que VS Code debería hacer lo mismo en una ventana emergente.

En realidad, me sorprende un poco que esto no sea una característica después de 2 años, todavía me pregunto por qué no se ha detectado y priorizado.

Actualmente usando la versión VSC 1.34.0
qwe
y el problema no se ha solucionado.

Todavía tengo este problema aquí también, en Windows 10. Me deshice de Putty ahora que OpenSSH está incluido en Windows 10, pero VS Code no parece respetarlo. Tengo que empujar y tirar manualmente del terminal en VSCode, que funciona bien, pero me encantó poder hacer clic en un botón para sincronizar.

@ arcs: es poco probable que esto se solucione dado que git no proporciona una forma de interactuar con el proceso secundario de la clave SSH. Si otras personas pueden acceder a su máquina, ciérrela cuando no esté en su escritorio. De lo contrario, puede iniciar ssh-agent en macOS o Windows para solucionar este problema como se describe aquí: https://help.github.com/en/articles/working-with-ssh-key-passphrases

@ flaw600 Este proceso solo parece ayudar si

El hecho de que hayan pasado más de 3 años y este enlace aún sea aplicable parece desafortunado.
https://nathan.alner.net/2015/08/24/vs-code-ide-with-passphrased-git-ssh-keys/

Al abrir code través del menú de inicio, ignora el agente ssh y no puede tirar / empujar.

¿Alguna sugerencia? Es un gran problema para hacer desarrollo en este momento frente a otras plataformas.

El uso de https ha sido la solución superior durante algún tiempo. Es tan seguro, si no más , ya que puede crear tokens específicos para acceder. El administrador de credenciales de Windows SCM se encarga de todo automáticamente.

Como beneficio adicional, estoy bastante seguro de que HTTPS es en realidad más rápido que SSH.

@gdamore : cualquier evidencia que respalde su afirmación de que HTTPS es
más rápido que SSH?

El lunes 17 de junio de 2019 a las 11:45, gdamore [email protected] escribió:

El uso de https ha sido la solución superior durante algún tiempo. Es todo como
seguro, si no más , ya que puede crear tokens específicos para el acceso.
El administrador de credenciales de Windows SCM se encarga de todo automáticamente.

Como beneficio adicional, estoy bastante seguro de que HTTPS es en realidad más rápido que SSH.

-
Estás recibiendo esto porque comentaste.
Responda a este correo electrónico directamente, véalo en GitHub
https://github.com/microsoft/vscode/issues/13680?email_source=notifications&email_token=AFLBAENFUKYEOE3WLKBGCJLP265Q7A5CNFSM4CSXV3P2YY3PNVWWK3TUL52HS4DFVVREXWG43V2 ,
o silenciar el hilo
https://github.com/notifications/unsubscribe-auth/AFLBAEOC5BVCGGJ7EDXTINTP265Q7ANCNFSM4CSXV3PQ
.

No específicamente con git, pero en otros usos (copias de archivos grandes), lo hemos visto. Creo que realmente se relaciona con las cosas establecidas en la capa TCP donde SSH parece tener valores que son más apropiados para el uso interactivo, mientras que HTTP tiende a estar más optimizado para mover archivos, que es realmente lo que hace git en este caso.

Odio decir esto, pero mágicamente empezó a funcionar para mí. No estoy seguro de si estaba iniciando SSH a través de Powershell o CMD, ¡no tengo idea! Solo un montón de intentos y luego funcionó mágicamente.

En Windows, puede usar pageant como su agente SSH y luego establecer la variable env GIT_SSH en plink . Ambas herramientas son parte de PuTTY y también se incluyen con TortoiseGit.

No me hace bien en una mac

El miércoles, 3 de julio de 2019 a las 11:44 a.m., Justin [email protected] escribió:

En Windows puede usar pageant como su agente SSH y luego configurar env
variable GIT_SSH para plink. Ambas herramientas son parte de PuTTY y también
incluido con TortoiseGit.

-
Estás recibiendo esto porque comentaste.
Responda a este correo electrónico directamente, véalo en GitHub
https://github.com/microsoft/vscode/issues/13680?email_source=notifications&email_token=AFBZHXFVMRQ4DBPV2TLBBGTP5TJN7A5CNFSM4CSXV3P2YY3PNVWWK3TUL52H43LVDMVREXWWK3TUL52HH4DFMVREXWWK3TUL52H4DVMVREX
o silenciar el hilo
https://github.com/notifications/unsubscribe-auth/AFBZHXD63DGD5FUXRJYMLXDP5TJN7ANCNFSM4CSXV3PQ
.

@ Jazun713 mac funciona bien: https://github.com/microsoft/vscode/issues/13680#issuecomment -473190878

¿Por qué esto sigue existiendo?

wow, entonces después de 3 años todavía no es posible conectar el código VS a través de ssh, al menos para iniciarlo desde la línea de comando

Bueno, no superé la frase de contraseña porque no la había configurado, pero de alguna manera pude dejar que VSCode al menos se configurara para usar ssh una vez abierto como root (o por Windows como administrador). Esto es después de que instalé Openssh o en Windows configuré la conexión con Putty. Después de verificar la configuración del ssh e instalarlo, como se indica aquí https://help.github.com/en/articles/testing-your-ssh-connection . Consulte esto también, proporciona muchas ideas útiles ya que cada caso depende de cómo haya configurado su agente ssh y el sistema operativo (estoy ejecutando Ubuntu 18.04) https://help.github.com/en/articles/ error-permiso-denegado-clave pública

Usando la versión 1.36.1, todavía no puedo conectarme a Github a través de SSH con una frase de contraseña; tuve que quitar la frase de contraseña de mi clave. ¿Qué es tan difícil? Con HTTPS, solicita el usuario y la contraseña de git ... (varias veces, por eso no quiero usarlo).

Esto es un poco molesto. El uso de una contraseña con su clave SSH promueve una buena seguridad. Es técnicamente una forma de 2FA (lo que tiene: la clave + lo que sabe: la contraseña). Estoy usando este editor en MacOS y es realmente molesto saltar a la consola para todas las operaciones de git. VS Git UI simplemente falla. Debería aparecer una entrada de contraseña

@ ronin1 ¿Has leído mi comentario anterior?

En macOS, agregué esto a mi ~/.ssh/config al final (lo cual es importante, no pongas nada a continuación):

Host *
   AddKeysToAgent yes
   UseKeychain yes 

Luego hice un git pull para que macOS me pidiera mi contraseña ssh. Después de eso, macOS nunca me volverá a pedir la contraseña, por lo tanto, el control de versiones de VSCode está funcionando como debería.

Espero que ayude a alguien.
¡Salud!

Lo anterior funciona para mí. Quizás una nota podría entrar aquí: https://code.visualstudio.com/docs/setup/mac

Esto sería genial para obtener una resolución o una solución adecuada en Windows.

La "solución alternativa adecuada" es usar URL HTTPS en lugar de SSH, junto con el administrador de credenciales git-scm. Funciona perfecto para mi.

Enviado desde Mail para Windows 10

De: Kai Richardson
Enviado: miércoles, 28 de agosto de 2019 9:33 a.m.
Para: microsoft / vscode
Cc: gdamore; Mencionar
Asunto: Re: [microsoft / vscode] Admite git con contraseña de clave privada (# 13680)

Esto sería genial para obtener una resolución o una solución adecuada en Windows.
-
Estás recibiendo esto porque te mencionaron.
Responda a este correo electrónico directamente, véalo en GitHub o silencia el hilo.

@gdamore esa no es la solución correcta. Este problema es específicamente para usar el protocolo SSH. Algunas personas pueden estar usando un servidor Git donde los administradores específicamente no permiten operaciones http (s) Git, por lo que decirles que usen https no les ofrece ninguna solución.

@ Kai-Richardson Funciona en Windows si configura Git para usar un comando SSH que admita un agente SSH y abra la clave en ese agente.

  1. TortoiseGit: Establezca la variable env GIT_SSH en TortoiseGitPlink.exe en su carpeta de instalación de TortoiseGit, convierta las claves privadas al formato PPK con el puttygen.exe incluido y luego abra las claves privadas en pageant.exe . Podría simplemente PuTTY en lugar de TortoiseGit, en ese caso establezca GIT_SSH en plink.exe y use puttygen / pageant.
  2. Instale el MS OpenSSH oficial ( enlace , uso chocolatey con la función SSH Agent habilitada), inicie el servicio ssh-agent, abra la clave privada con ssh-add <path to key file> y establezca la variable env GIT_SSH en ssh.exe (generalmente C:\Program Files\OpenSSH-Win64\ssh.exe ). Mi único problema aquí es que después de la versión 8.0 parece tener problemas para leer las claves privadas con el formato tradicional ( -----BEGIN RSA PRIVATE KEY----- , favoreciendo en su lugar el formato -----BEGIN OPENSSH PRIVATE KEY----- ).

Actualicé mi código de estudio visual, ya no puedo interactuar con mi github a través de la aplicación. Versión 1.37.1

SO: Windows 10 Pro: versión: 10.0.17134 Build 17134

¿El equipo de MS simplemente odia SSH?

¿Qué IDE admite realmente códigos de acceso SSH? Porque los productos de Jetbrains tampoco. Por lo tanto, tiene 2 de los 3 principales proveedores que no admiten códigos de acceso SSH de forma nativa (y el otro, Github, simplemente no sé si su editor Atom admite códigos de acceso SSH de forma nativa).

El 29 de agosto de 2019, a las 8:43 p.m., Chris Migut [email protected] escribió:

Actualizado por el código de Visual Studio, ya no puedo interactuar con mi github a través de la aplicación. Versión 1.37.1

¿El equipo de MS simplemente odia SSH?

-
Estás recibiendo esto porque te mencionaron.
Responder a este correo electrónico directamente, visualizarla en GitHub https://github.com/microsoft/vscode/issues/13680?email_source=notifications&email_token=ACKS4GSGFBF2OGBCXPN55LDQHB3NLA5CNFSM4CSXV3P2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD5QI7ZA#issuecomment-526421988 , o silenciar el hilo https://github.com/notifications/ unsubscribe-auth / ACKS4GTHNDBY5DETIRNVX6TQHB3NLANCNFSM4CSXV3PQ .

¿Hice algún error? Acabo de iniciar Kali Linux como un arranque doble en Windows

  1. Todo salió bien y perfecto después de un largo proceso, pero de alguna manera el
    dispositivo conectado a git que se adjunta y etiqueta juntos y cuando intento
    conseguir el camino. Booommmmm tantos archivos que se están cargando en mi disco duro ...
    está sucediendo ????

PrinceKK301088

El sábado 31 de agosto de 2019 a las 8:59 am, flaw600, [email protected] escribió:

¿Qué IDE admite realmente códigos de acceso SSH? Porque los productos de Jetbrains
tampoco. Por lo tanto, tiene 2 de los 3 principales proveedores que no admiten SSH
códigos de acceso de forma nativa (y el otro, Github, simplemente no sé si sus
El editor Atom admite códigos de acceso SSH de forma nativa).

El 29 de agosto de 2019, a las 8:43 p.m., Chris Migut [email protected]
escribió:

Actualizado por el código de Visual Studio, ya no puedo interactuar con mi github
a través de la aplicación. Versión 1.37.1

¿El equipo de MS simplemente odia SSH?

-
Estás recibiendo esto porque te mencionaron.
Responda a este correo electrónico directamente, véalo en GitHub <
https://github.com/microsoft/vscode/issues/13680?email_source=notifications&email_token=ACKS4GSGFBF2OGBCXPN55LDQHB3NLA5CNFSM4CSXV3P2YY3PNVWWK3TUL52HS4DFVREXG43VMDVBW5H4DFVREXG43VMDVBW5H4DFVREXG43VMDVBW5
o silenciar el hilo <
https://github.com/notifications/unsubscribe-auth/ACKS4GTHNDBY5DETIRNVX6TQHB3NLANCNFSM4CSXV3PQ
.

-
Estás recibiendo esto porque estás suscrito a este hilo.
Responda a este correo electrónico directamente, véalo en GitHub
https://github.com/microsoft/vscode/issues/13680?email_source=notifications&email_token=AH4ENDPM4O6N2MT3BFLXGRTQHG66NA5CNFSM4CSXV3P2YY3PNVWWK3TUL52HS4DFVREXP63JWWK3TUL52HS4DFVREXH63JWMVN5 ,
o silenciar el hilo
https://github.com/notifications/unsubscribe-auth/AH4ENDORTBRU3GTGOWJFOVLQHG66NANCNFSM4CSXV3PQ
.

¿Qué IDE admite realmente códigos de acceso SSH? Porque los productos de Jetbrains tampoco. Por lo tanto, tiene 2 de los 3 principales proveedores que no admiten códigos de acceso SSH de forma nativa (y el otro, Github, simplemente no sé si su editor Atom admite códigos de acceso SSH de forma nativa).

Hay un hilo duplicado https://puu.sh/B7qHY/57f3c89f47.png

El enlace está protegido por clave

Enviado desde mi iPhone

El 16 de septiembre de 2019, a la 1:32 p.m., vitasam [email protected] escribió:

¿Qué IDE admite realmente códigos de acceso SSH? Porque los productos de Jetbrains tampoco. Por lo tanto, tiene 2 de los 3 principales proveedores que no admiten códigos de acceso SSH de forma nativa (y el otro, Github, simplemente no sé si su editor Atom admite códigos de acceso SSH de forma nativa).
...
El 29 de agosto de 2019, a las 8:43 p.m., Chris Migut @. * > escribió: Actualizado por código de Visual Studio, ya no puedo interactuar con mi github a través de la aplicación. Versión 1.37.1 ¿El equipo de MS simplemente odia SSH? - Estás recibiendo esto porque te mencionaron. Responder a este correo electrónico directamente, visualizarla en GitHub <# 13680? Email_source = notificaciones y email_token = ACKS4GSGFBF2OGBCXPN55LDQHB3NLA5CNFSM4CSXV3P2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD5QI7ZA # issuecomment-526421988>, o silenciar el hilo https://github.com/notifications/unsubscribe-auth/ACKS4GTHNDBY5DETIRNVX6TQHB3NLANCNFSM4CSXV3PQ.

Hay un hilo duplicado sobre el mismo problema, alguien dijo que Atom admite la clave SSH de forma nativa: https://puu.sh/B7qHY/57f3c89f47.png

-
Estás recibiendo esto porque te mencionaron.
Responda a este correo electrónico directamente, véalo en GitHub o silencia el hilo.

Interesante, puedo abrir el enlace. El diálogo de Atom:
atom_ssh_key_pass

además de agregar las entradas de configuración ssh anteriores

si windows

Set-Service ssh-agent -StartupType Automatic 

en powershell
ahora el código vs no debería indicar ...

además de agregar las entradas de configuración ssh anteriores

si windows

Set-Service ssh-agent -StartupType Automatic 

en powershell
ahora el código vs no debería indicar ...

Recibo un error de permiso con este intento. ¿Alguna sugerencia?

Set-Service: El servicio 'Agente de autenticación OpenSSH (ssh-agent)' no se puede configurar debido al siguiente error: Acceso denegado
En línea: 1 carácter: 1
+ Set-Service ssh-agent -StartupType Automático
+ ~ ~ ~ ~ ~ ~ ~ ~ ~~~~
+ CategoryInfo: PermissionDenied: (System.ServiceProcess.ServiceController: ServiceController) [Set-Service], ServiceCommandException
+ FullyQualifiedErrorId: CouldNotSetService, Microsoft.PowerShell.Commands.SetServiceCommand

Recibo un error de permiso con este intento. ¿Alguna sugerencia?

@seantma : PowerShell debe ejecutarse como administrador para tener los permisos necesarios.

además de agregar las entradas de configuración ssh anteriores
si windows
Set-Service ssh-agent -StartupType Automático

en powershell
ahora el código vs no debería indicar ...

No ayudó en mi caso, VCode devuelve los siguientes errores, cuando estaba tratando de sincronizar la confirmación local con el origen (remoto):

fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

Parece que VCode no usa la configuración global de GIT (nombre y correo electrónico), ¿podría ser?

Hice esto y funciona (no probado con una clave ssh con frase de contraseña):

  • Abra una nueva terminal dentro de Visual Code, elija la carpeta del proyecto actual si se le solicita
  • VS abrirá una terminal con Poweshell
  • Ejecute ssh-keygen.exe -> Enter, enter, enter ..... -> clave creada en .ssh en la carpeta del usuario (normalmente en C: \ Users \)
  • Copie el contenido de la clave (.ssh / id_rsa.pub) y agréguelo a la nueva clave en la configuración de Github

Eso es

Esta no es una solución adecuada, @ leductan-nguyen. Este problema no solo se trata de claves protegidas con contraseña, sino que tampoco funcionará si tienes que tener varias claves (tengo una para GitHub y otra para GitLab, por ejemplo).

¿Algún progreso con este?

@Badbreaddead , se han publicado varias soluciones o soluciones alternativas arriba. Depende del sistema operativo que esté utilizando:

OS X

Siga la solución de @ dschu-lab y agregue

Host *
   AddKeysToAgent yes
   UseKeychain yes 

hasta el _muy final_ de ~/.ssh/config . Si su clave ssh no tiene un nombre estándar, es posible que también deba especificarlo con IdentityFile /path/to/your/ssh/private/key como señalaron otros.
Luego, se le pedirá que agregue su frase de contraseña la primera vez que la use y luego se almacenará en el llavero para cualquier uso posterior.

Linux

Instale el llavero , por ejemplo, a través de sudo apt install keychain , como @ Silentz0r señaló anteriormente . Luego ejecuta keychain --eval <ssh-key-name> , pero parece que keychain <path-to-ssh-key> tiene el mismo efecto. Agregar a su .bashrc o equivalente debería ser suficiente.

Ventanas

La solución alternativa de @geordanr es la única que funcionó para mí. Ejecute los siguientes comandos en Git Bash para agregar la clave ssh al agente y ejecute el código en la misma sesión:

$ eval `ssh-agent`
$ ssh-add /path/to/key
$ code

Si desea evitar tener que escribir los dos primeros comandos cada vez, también puede agregar algo como

#use fix path for SSH_AUTH_SOCK so it works more then one instance of gitbash
export SSH_AUTH_SOCK="$TEMP/ssh_agent_socket"

ps | grep ssh-agent > /dev/null
RUNNING=$?;

if [ "$RUNNING" -eq "1" ] 
then
# ssh-agent is not yet running
    eval `ssh-agent -a $SSH_AUTH_SOCK`
fi
ssh-add 

a su archivo ~/.bashrc en Git Bash para iniciar el ssh-agent automáticamente (tomado de aquí y ajustado ligeramente). Si su clave no tiene un nombre estándar, deberá especificar la ruta después de ssh-add , por ejemplo, ssh-add ~/.ssh/id_rsa_personal_key .

¿Qué IDE admite realmente códigos de acceso SSH? Porque los productos de Jetbrains tampoco. Por lo tanto, tiene 2 de los 3 principales proveedores que no admiten códigos de acceso SSH de forma nativa (y el otro, Github, simplemente no sé si su editor Atom admite códigos de acceso SSH de forma nativa).
...
El 29 de agosto de 2019, a las 8:43 p.m., Chris Migut @ . * > escribió: Actualizado por código de Visual Studio, ya no puedo interactuar con mi github a través de la aplicación. Versión 1.37.1 ¿El equipo de MS simplemente odia SSH? - Estás recibiendo esto porque te mencionaron. Responder a este correo electrónico directamente, visualizarla en GitHub <# 13680? Email_source = notificaciones y email_token = ACKS4GSGFBF2OGBCXPN55LDQHB3NLA5CNFSM4CSXV3P2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD5QI7ZA # issuecomment-526421988>, o silenciar el hilo https://github.com/notifications/unsubscribe-auth/ACKS4GTHNDBY5DETIRNVX6TQHB3NLANCNFSM4CSXV3PQ .

PyCharm admite mi clave ssh con frase de contraseña sin problemas, me pidió la frase de contraseña una vez y nunca más y todas las funciones de git funcionan como se esperaba.

Ejecute los siguientes comandos en Git Bash para agregar la clave ssh al agente y ejecute el código en la misma sesión:

$ eval ssh-agent
$ ssh-agregar / ruta / a / clave
$ código

Por lo que vale, esto también funciona en Linux, y no es necesario ejecutar code través de la terminal. El atajo también funcionará bien. El terminal en sí se puede cerrar justo después de estos comandos.

Conozco al menos otra solución alternativa:

Instale ssh-askpass (en Arch Linux esto lo proporcionan los paquetes x11-ssh-askpass y seahorse , y los binarios residen en /usr/lib/ssh/ssh-askpass y /usr/lib/seahorse/ssh-askpass respectivamente). Instalar uno de estos paquetes es todo lo que se necesita. VS Code iniciará el cuadro de diálogo de contraseña cada vez que sea necesario.

Simplemente agregue esas claves a continuación a su entorno:

DISPLAY=needs-to-be-defined
SSH_ASKPASS=/mingw64/libexec/git-core/git-gui--askpass

Podría haber jurado que esto fue en el hito de enero de 2020 . 😕

Agregando a esto https://github.com/microsoft/vscode/issues/13680#issuecomment -559013132

Es que dado que bash le pide en cada inicio de sesión que ingrese su frase de contraseña, puede ejecutar VSCode en cadena en un acceso directo a través de bash. Para el ícono, simplemente use el que vino con VSCode, probablemente en% LOCALAPPDATA% \ Programs \ Microsoft VS CodeCode.exe

Si ya tiene ssh-agent ejecutándose, esto lanzará el código inmediatamente. De lo contrario, esperará a que ingrese su frase de contraseña.

image

Me encantaría ayudar con esto. Es una de las pocas cosas que todavía deseo que VSCode hiciera, pero incluso sin ella, no importa, todavía disfruto mucho usando VSCode, ¡así que gracias!

¿Sabías que Git-para-Windows viene con un script llamado start-ssh-agent , está en la carpeta cmd , que normalmente se agrega a la ruta del usuario en una instalación estándar de Git-para-Windows? ¿Quizás haya alguna forma de usar esto para resolver este problema?

Me pregunto si alguien puede señalarme la cadena de eventos que ocurre cuando hace clic en el botón de empujar / tirar, tal vez podamos intentar ejecutar este script, posiblemente en la terminal vscode, o en una ventana emergente.

Además, como una ventaja adicional, si el usuario ya ha iniciado ssh-agent, el script generalmente lo encontrará y solo usará el agente existente, por lo que ni siquiera se requiere una contraseña.

¡Gracias!

https://github.com/microsoft/vscode/issues/13680#issuecomment -525861890 también funcionó para mí, pero no es muy sencillo y complica las cosas si también estás usando Git para Windows git y bash.

Lo que encontré sobre el problema y un resumen de las posibles soluciones.

El principal problema en Windows + Git para Windows (GfW) + VSCode + SSH git repo es este:

  • Si no lanzó Windows o GfW ssh-agent antes (o no tiene un asistente / servicio que lo haga), no parece que pueda iniciar ssh-agent y ssh-add. Tal vez no sea responsabilidad de VSCode, pero es bueno saber o que se le pregunte que ssh no se está ejecutando.
  • Si lanzó el agente ssh de GfW a través de un .bashrc, y si ejecuta VSCode desde el menú Inicio / Acceso directo y no la misma sesión (como ejecutar code desde el cli), entonces VSCode no acceso al agente ssh de GfW también.
  • Si lanzó la versión de Windows de ssh-agent y tiene GfW instalado, GfW git no usa la versión de Windows de ssh-agent de forma predeterminada, ya que también viene con su propia versión de herramientas ssh. VSCode parece usar el git de GfW cuando está disponible, por lo que puede ser la razón por la que no detecta que Windows ssh-agent ya se está ejecutando (con claves agregadas) y lo usa.

La solución 2 es buena, pero tampoco es muy sencilla, estos son los pasos que tomé:

  1. Instale OpenSSH Client en Funciones opcionales
  2. Agregue GIT_SSH en Variables de entorno, apuntando a las herramientas del cliente OpenSSH, probablemente C: \ Windows \ System32 \ OpenSSHssh.exe
  3. Cambie el agente Open SSH en Servicios a Automático (si está deshabilitado, el mío estaba)
  4. Ejecute ssh-add en PowerShell y debería ver su clave agregada
  5. VSCode ahora debería poder hacer cosas de git con el repositorio SSH
  6. Sin embargo, GfW git y bash no usan este agente (intenté apuntar bash env GIT_SSH a las herramientas de Windows OpenSSH pero se niegan a trabajar juntas), por lo que debe usar el script .bashrc para iniciar el agente e ingresar la frase de contraseña en otro momento al iniciar GfW bash.

Por ahora, me quedo con la Solución 1, ya que también uso sistemas Mac y Linux y es bueno tener las mismas herramientas bash / git / ssh en todas partes.

Intenté encadenar el script de Git-para-Windows llamado start-ssh-agent.cmd en la carpeta cmd, con Code.exe en el acceso directo como %COMSPEC% /C %LOCALAPPDATA%\Programs\Git\cmd\start-ssh-agent.cmd && "%LOCALAPPDATA%\Programs\Microsoft VS Code\Code.exe" y funciona, pero tiene este lado extraño efecto de abrir una segunda instancia de VSCode después de salir de la primera instancia, pero no sé por qué.

Si ejecuto esta línea desde la terminal de Windows (con o sin los %COMSPEC% /C ) funciona bien.

Otra cosa que intenté fue crear un archivo *.bat o *.cmd con el mismo comando que el acceso directo, pero me sorprendió que no funcionara. VSCode se inicia, pero no puede tirar / empujar, y responde con el temido "permiso denegado (clave pública)". error.

También pasé un tiempo buscando en el código base de la extensión de Git, pero no pude averiguar dónde insertar el script ssh-start-agent, idealmente cuando está buscando la versión de Git y encuentra que está en Windows, como alrededor de las líneas 61-148 en git.ts ya que ejecuta git --version también podría ejecutar cp.exec('start-ssh-agent.cmd') pero tendría que haber una forma de obtener la contraseña del usuario.

Finalmente, lo que me decidí fue copiar start-ssh-agent.cmd en un nuevo archivo llamado vscode-ssh-agent.cmd y reemplazar la última línea donde llama CMD con <strong i="25">@call</strong> "%LOCALAPPDATA%\Programs\Microsoft VS Code\Code.exe" . Pero no puedo anclarlo a la barra de tareas.

Actualmente estoy intentando implementar esta función. Todavía es un trabajo en progreso, pero debería tener un PR disponible pronto.

Por ahora, inicio un ssh-agent, agrego la clave de usuario si git.sshPrivateKeyPath está configurado, le solicito al usuario su contraseña de clave SSH si se solicita y uso las variables de entorno del agente para cada llamada de git.
Mis primeras pruebas en una máquina con Windows parecen funcionar.

Leí todos los comentarios aquí, pero es posible que haya olvidado algo, así que no dude en hacer cualquier comentario.

Agregando a https://github.com/microsoft/vscode/issues/13680#issuecomment -583599355 desde @weiliddat; Yo mismo uso con frecuencia la entrada del menú contextual "Abrir con VSCode" (clic derecho en la carpeta) y utilicé ContextEdit para editar una entrada del menú contextual al abrir carpetas con VSCode para iniciarlo a través de Git Bash, por lo que VSCode tiene acceso al contexto SSH.

  1. Instale ContextEdit .
  2. Ejecute ContextEdit como administrador
  3. Busque "Carpeta de archivos" en la larga lista de extensiones.
    image
  4. Haga doble clic en la entrada "Abrir con código" en "Comandos de Shell"
  5. Cambie la cadena "Línea de comando" a "C:\Program Files\Git\bin\bash.exe" -l -c "code '%V';exit" . Asegúrese de que "C:\Program Files\Git\" corresponda a su directorio de instalación de Git para Windows. Es posible que desee copiar el comando anterior en caso de que necesite restablecer.
  6. Haga clic en "Aceptar" y "Salir"

Ahora, si hace clic derecho en una carpeta para "Abrir con VSCode", esto primero debería iniciar Git Bash, y luego abrir VSCode en la carpeta correcta. Si ha configurado correctamente Git Bash para iniciar su Agente SSH antes de iniciar Git Bash , esto debería pedirle que escriba la frase de contraseña una vez cada vez que reinicie su computadora. En la apertura posterior, esto debería abrir VSCode directamente y tener su clave SSH configurada.

No pude encontrar la entrada ContextEdit al hacer clic derecho dentro de una carpeta en el Explorador, en lugar de hacer clic derecho directamente en la carpeta en sí.

Esta solución funciona a las mil maravillas.

Simplemente agregue esas claves a continuación a su entorno:

DISPLAY=needs-to-be-defined
SSH_ASKPASS=/mingw64/libexec/git-core/git-gui--askpass

Simplemente agregue esas claves a continuación a su entorno:

DISPLAY=needs-to-be-defined
SSH_ASKPASS=/mingw64/libexec/git-core/git-gui--askpass

https://github.com/microsoft/vscode/issues/13680#issuecomment -575204695
¡Esto lo resuelve! ¡Muchas gracias!

Por favor, consulte esta sección . En resumen, dice que debe comenzar VSCode desde GitBash o algo así para tener las variables de entorno requeridas. Además, si ha marcado estas variables en GitBash , podría obtener algo como esto:
.

Por ejemplo, si no desea usar GitBash para comenzar VSCode cada vez (¡ porque esta tontería! En mi humilde opinión ), es posible agregarlos usando Environment Variables ventana o usando un comando rundll32.exe sysdm.cpl,EditEnvironmentVariables (es decir, a través de cmd.exe).

En el resultado, podría verse así:

Ahora, simplemente reinicie (no recargue) VSCode y debería funcionar:

Es curioso que funcione incluso si DISPLAY=WTHeck , por lo que podría buscar solo la existencia de esta variable.

¿Por qué no simplemente definir estos ( private key file path o SSH_ASKPASS ) como un valor de configuración JSON algún lugar como una solución alternativa, por lo que VSCode los agregaría al inicio para sus variables de entorno interno?

No estoy muy familiarizado con el funcionamiento de las aplicaciones de Windows o de electron, pero sería posible desarrollar una envoltura alrededor de esta solución para que cuando VSCode se instale, configure automáticamente estas configuraciones.

TBH para mí, esto no parece que sea un problema tan difícil de resolver, pero considerando cómo esta discusión ha continuado durante 4 años, probablemente sea un gran problema. Sería genial ver que VSCode implemente al menos algo para que los usuarios puedan usar esta característica de git bastante estándar sin tener que hacer sus propias soluciones. Aunque veo un punto importante en implementarlo correctamente la primera vez.

Gracias soufiene-slimi por su solución alternativa y gracias a F8ER por la aclaración. Aunque hay una inconsistencia en la interfaz de usuario, al menos funciona

Simplemente agregue esas claves a continuación a su entorno:

DISPLAY=needs-to-be-defined
SSH_ASKPASS=/mingw64/libexec/git-core/git-gui--askpass

¿Algo nuevo aquí? Acabo de comenzar a trabajar con VSCode en WSL 2 y Git. Y debido a que VSCode se congela cada vez que intento presionar o publicar algo, lo probé en la terminal y funcionó muy bien porque allí tuve la posibilidad de ingresar mi contraseña.

Este problema es tan antiguo y tiene muchos comentarios. Tal vez en algún lugar sea una buena solución sin eliminar la frase de contraseña de mi clave y sin guardar la clave en algún lugar de las configuraciones.

Hola chicos,

También encontré este problema en mi Mac.
Tengo una clave RSA configurada y mi configuración se ve así

# GitLab.com
Host gitlab.com
  Preferredauthentications publickey
  UseKeychain yes
  AddKeysToAgent yes
  IdentityFile ~/.ssh/id_rsa

La cosa es que desde el terminal de código VS cuando empujo al origen con CLI, empuja con éxito mi código con un mensaje para ingresar una contraseña.
El problema surge cuando uso la GUI de VScode pull / push / sync que me da

Please make sure you have the correct access rights
and the repository exists.
> git push -u origin v1.5_Testing
[email protected]: Permission denied (publickey).
fatal: Could not read from remote repository.

la única diferencia es que la GUI no solicita una contraseña, por lo que supongo que está fallando.

[email protected] : Permiso denegado (
...
la única diferencia es que la GUI no solicita una contraseña, por lo que supongo que está fallando.

@mohammedpatla Por favor, revisa esto .

Esa solución con variables de entorno no me ayuda. No tengo git instalado en Windows pero en Ubuntu 20.04 ejecutándose en WSL2. No hay ningún directorio llamado mingw64 o un binario llamado git-gui--askpass ninguna parte.

Por lo tanto, también creo que la solución tampoco funciona en una Mac, @ F8ER .

No puedo ejecutar VScode a través de git-bash en una Mac @ F8ER

Esa solución con variables de entorno no me ayuda. No tengo git instalado en Windows pero en Ubuntu 20.04 ejecutándose en WSL2. No hay ningún directorio llamado mingw64 o un binario llamado git-gui--askpass ninguna parte.

No puedo ejecutar VScode a través de git-bash en una Mac

¿Sabes qué es Environment Variable ?
@NicolasGoeddel Es posible que enlace de ubuntu.com .
@mohammedpatla En su lugar, le gustaría consultar este enlace de apple.com .

También. por favor, pruebe Google primero . Por ejemplo, la ausencia de git-gui--askpass podría significar que no hay ningún paquete git-gui instalado, por lo que es posible que lo necesite.

Esa solución con variables de entorno no me ayuda. No tengo git instalado en Windows pero en Ubuntu 20.04 ejecutándose en WSL2. No hay ningún directorio llamado mingw64 o un binario llamado git-gui--askpass ninguna parte.

No puedo ejecutar VScode a través de git-bash en una Mac

¿Sabes qué es Environment Variable ?
@NicolasGoeddel Es posible que enlace de ubuntu.com .
@mohammedpatla En su lugar, le gustaría consultar este enlace de apple.com .

También. por favor, pruebe Google primero . Por ejemplo, una ausencia de git-gui--askpas podría significar que no hay ningún paquete git-gui instalado.

Por supuesto que sé qué son las variables de entorno. Pero, ¿por qué debería instalar una aplicación GUI en una máquina Linux que se ejecuta en WSL2 cuando no es posible ejecutar esa GUI? Simplemente no es posible en una máquina sin cabeza. Por favor, lea mis publicaciones con más atención la próxima vez.

Ese truco de git-gui simplemente no es la solución correcta en mi escenario. Pero tal vez funcione en Mac si VSCode y el repositorio se ejecutan de forma nativa en el mismo entorno. Entonces @mohammedpatla solo tiene que instalar git-gui en su sistema y necesita cambiar las variables de entorno.

Por supuesto que sé qué son las variables de entorno. Pero, ¿por qué debería instalar una aplicación GUI en una máquina Linux que se ejecuta en WSL2 cuando no es posible ejecutar esa GUI? Simplemente no es posible en una máquina sin cabeza.
Ese truco git-gui simplemente no es la solución correcta en mi escenario.

¿Por qué estás intentando ejecutar VSCode en una máquina sin interfaz gráfica de usuario o me falta algo?
Además, es posible que desee ver este .

Funciona bien para mí en mi Mac, no importa cómo empiece vscode, pero tengo el agente ssh habilitado y conectado a mi llavero de credenciales para que se inicie automáticamente.

No he intentado sacar / empujar desde WSL, pero uso la conexión remota de la vacuna. Puedo ejecutar aplicaciones de tipo desde WSL usando VcXsrv, pero eso es irrelevante.

¿Se inició ssh-agent en su WSL? Inicie su terminal WSL y mire .bashrc o .bash_prifile , si existen en su carpeta de inicio. Luego añade:

eval `ssh-agent`
ssh-add

Quizás eso ayude, pero quizás no. Al usar wsl, descubrí que algunas cosas simplemente no funcionan. Mantenga su terminal abierta y sincronice sus repositorios conseguidos manualmente

Creo que esto va demasiado lejos, ¿no? Ya tenemos soluciones. La solución adecuada sería que VS Code solicite la contraseña de forma nativa, de la misma manera que ya lo hace para el nombre de usuario / contraseña normal.

/ cc @ alarr46 , ¿qué dices?

Por supuesto que sé qué son las variables de entorno. Pero, ¿por qué debería instalar una aplicación GUI en una máquina Linux que se ejecuta en WSL2 cuando no es posible ejecutar esa GUI? Simplemente no es posible en una máquina sin cabeza.
Ese truco git-gui simplemente no es la solución correcta en mi escenario.

¿Por qué estás intentando ejecutar VSCode en una máquina sin interfaz gráfica de usuario o me falta algo?
Además, es posible que desee ver este .
Me malentendiste. VSCode se ejecuta en Windows y la aplicación y sus fuentes que desarrollo se ejecutan en WSL 2.
Pero gracias por tu enlace. No sabía cómo compartir credenciales de Git entre Windows y WSL. Lo probaré.

Por otro lado, @ranolfi tiene razón. Todo esto sigue siendo soluciones. Sería mejor, así que solucione todo el problema. :-)

Sí, deseo que esto se implemente en VSCode, también de forma nativa. Un aviso sería muy apreciado.

Simplemente agregue esas claves a continuación a su entorno:

DISPLAY=needs-to-be-defined
SSH_ASKPASS=/mingw64/libexec/git-core/git-gui--askpass

antes de preguntarse si debería haber un espacio antes de los guiones dobles, no debería haberlo. parece que debería ser un parámetro, pero creo que en realidad es un nombre de archivo ... sin espacio

Simplemente agregue esas claves a continuación a su entorno:

DISPLAY=needs-to-be-defined
SSH_ASKPASS=/mingw64/libexec/git-core/git-gui--askpass

antes de preguntarse si debería haber un espacio antes de los guiones dobles, no debería haberlo. parece que debería ser un parámetro, pero creo que en realidad es un nombre de archivo ... sin espacio

Creo que esto va demasiado lejos, ¿no? Ya tenemos soluciones. La solución adecuada sería que VS Code solicite la contraseña de forma nativa, de la misma manera que ya lo hace para el nombre de usuario / contraseña normal.

/ cc @ alarr46 , ¿qué dices?

Solo esperaré el lanzamiento oficial, solo usaré Git-CLI hasta entonces.

Creo que esto va demasiado lejos, ¿no? Ya tenemos soluciones. La solución adecuada sería que VS Code solicite la contraseña de forma nativa, de la misma manera que ya lo hace para el nombre de usuario / contraseña normal.

/ cc @ alarr46 , ¿qué dices?

Estoy de acuerdo, eso es lo que implementé en esta solicitud de extracción . Sin embargo, aún debe revisarse.

Estoy de acuerdo, eso es lo que implementé en esta solicitud de extracción . Sin embargo, aún debe revisarse.

Sin embargo, muy buen comienzo. ¡Muchas gracias! Cohete.

¿Fue útil esta página
0 / 5 - 0 calificaciones