Vscode: Git: suporte git com senha de chave privada

Criado em 13 out. 2016  ·  229Comentários  ·  Fonte: microsoft/vscode

  • Versão VSCode: 1.6.0
  • Commit e52fb0bc87e6f5c8f144e172639891d8d8c9aa55
  • Data 2016-10-10T18: 37: 40.189Z
  • Shell 1.3.7
  • Renderer 52.0.2743.82
  • Nó 6.5.0
  • Versão do sistema operacional: Windows 7 Pro

Passos para reproduzir:

  1. Crie um par de chaves pública-privada com proteção por senha
  2. adicione-os à sua conta do github
  3. configure o git para usar o arquivo de chave privada
  4. tente empurrar algo com 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

Comentários muito úteis

Uma solução alternativa para o Windows 10:

  1. Faça o Git usar o OpenSSH que vem com o Windows em vez do que vem com o Git.
    git config --global core.sshCommand "C:/Windows/System32/OpenSSH/ssh.exe"
  2. Configure o serviço ssh-agent (não aquele que vem com git) para rodar automaticamente.
    Abra o Gerenciador de Tarefas, guia Serviços e clique em Abrir Serviços.
    Encontre o agente de autenticação OpenSSH, abra as propriedades, defina o tipo de inicialização como automático e clique em OK.
    Também inicie o serviço ou reinicie o computador.
  3. Adicione sua chave protegida por senha ao agente.
    ssh-add
    Ele deve coletar automaticamente as chaves armazenadas em C: \ Users \% USERNAME% \. Ssh, que é onde ssh-keygen as cria.
    Digite sua (s) senha (s) no prompt.

Nota: Se, ao instalar o Git para Windows, você selecionou a opção de adicionar comandos bash ao PATH, o comando ssh-add pode apontar para o executável errado. Nesse caso, você pode executar manualmente o incluído para que sua chave seja adicionada ao agente:
C:\Windows\System32\OpenSSH\ssh-add.exe

Agora, o agente de autenticação OpenSSH integrado será executado na inicialização com sua chave protegida por senha desbloqueada, e o Git usará o OpenSSH do Windows em vez de seu próprio. Portanto, não há necessidade de digitar sua senha todas as vezes, não há necessidade de iniciar manualmente o agente ssh e não há necessidade de iniciar o VS Code a partir da linha de comando.

Todos 229 comentários

Funciona na linha de comando? Como exatamente você configura o git para usar o arquivo de chave privada?

Ele funciona na linha de comando. Na verdade, eu configurei o git via git tartaruga - então acho que tudo está feito corretamente.

image

Como você inicia a linha de comando? Qual linha de comando?

Eu uso o git bash (MINGW64) no windows.

Direito. Então, podemos ter que adicionar uma configuração git.sshkey também, como Tortoise.

Com o Windows 10, Git 2.10.1.

Tive problemas ao usar git no vscode com meu servidor de produção, então criei um servidor de teste.
No início, com um usuário protegido por senha (sem chaves), os mesmos erros - sem pop-ups de solicitação de credencial nem nada.
Usando o terminal dentro do vscode ou qualquer cmd aleatório eu posso empurrar, puxar e funciona - pede senha. Com o vscode só posso preparar commits. Puxar, empurrar, sincronizar tudo falha porque eles não estão pedindo a senha.

Na produção, estou usando uma chave protegida por senha com uma porta de 5 dígitos diferente para ssh.
Também tenho algumas chaves ssh diferentes (incluindo git) em uma máquina ...

@joaomoreno Por que você o moveu para o backlog?

Apenas planejando prioridades. Você pode tentar uma solicitação de pull. 👍

Esperando por isso 😉

alguma atualização disso? Estou tendo o mesmo problema e é muito chato 😞

@joaomoreno Estou tentando fazer isso. Isso me afeta pessoalmente agora, pois recentemente mudei para a segurança baseada em chaves.

As pessoas podem acompanhar meu progresso aqui .

@hashhar Isso é incrível! 🍻 Avise-me se você bater em algumas paredes.

@joaomoreno Eu estava procurando nos lugares que precisam mudar e encontrei o seguinte:

Cenário atual:

  • Se você tiver um agente ssh em execução com a chave adicionada a ele, poderá executar todas as operações, exceto clone (porque node.url.parse () não funciona para urls ssh).
  • Se ssh-agent não estiver executando, todos os comandos git que envolvem atividade de rede (buscar, clonar, enviar, puxar) falharão. O erro é gerado por git.exe.

Alterações propostas:

  • [x] Não é necessário, veja o próximo comentário Adicione uma sobrecarga a url.parse () (onde?) para garantir que os urls ssh também sejam reconhecidos.
  • [x] Adicione uma chave de configuração, git.sshkey (localização da chave privada (limitada às chaves do openssh no momento - porque o git as suporta nativamente, examinará as chaves do putty posteriormente)).
  • [] Adicione uma condicional onde a extensão git é inicializada para iniciar um agente SSH (se um não estiver em execução) e adicione a chave. Precisará de alguma forma (escolha rápida?) Pedir ao usuário para inserir sua frase-senha. ( Matamos o agente quando fechamos o vscode? )

Nenhuma outra mudança será necessária (pelo que tenho visto atualmente) porque a comunicação com o ponto de extremidade git é tratada por git.exe e não por vscode.

Ok, minha má sobre a análise de url. Parece que o nó aceita urls como git+ssh://[email protected]:hashhar/vscode ou ssh://[email protected]:hashhar/vscode mas a parte ssh deve ser explicitamente mencionada.

O que devo fazer sobre isso, se o vscode apenas preceder magicamente ssh antes de urls que correspondam ao formato [email protected]:username/repo . Ou falhar silenciosamente? (Isso ainda precisa do ssh-agent rodando).

Ping @joaomoreno. Se você puder encontrar tempo, comente sobre as questões acima que eu tenho. Atualmente, eu criei uma prova de conceito iniciando o agente ssh em uma chave privada. Funciona, mas ainda é necessário um pouco de polimento.

@hashhar Desculpe pela demora ... Na verdade, estou muito ocupado no momento. Sinta-se à vontade para criar o PR e mover a discussão para lá, vamos tentar colocá-lo em março.

Não é suficiente apenas iniciar o ssh-agent, você também precisa adicionar as variáveis ​​de ambiente SSH_AGENT_PID e SSH_AUTH_SOCK para que o Git saiba onde procurar.

Você precisará então armazená-lo em algum lugar, para que possa ser usado entre as reinicializações do VSCode, ou precisará reiniciar o ssh-agent toda vez que reiniciar o VS Code.

Seria ótimo se pudesse compartilhar isso com Posh-Git (o módulo Powershell Git), que armazena os valores em ([System.IO.Path]::GetTempPath()) ".ssh\$key.env" - mas possivelmente vale a pena conversar com essa equipe para ter certeza de que esse local é algo que eles feliz por estar bloqueado.

@andrewducker Muito obrigado pela contribuição adicional. Não tenho trabalhado nisso no ritmo que gostaria por causa do meu seminário. Voltarei a ele no final da semana. Vou avisar a equipe Posh-Git.

@joaomoreno Voltei a trabalhar nisso. Minha abordagem anterior era muito ingênua e não funcionou. Atualmente, estou tentando encontrar um local adequado para adicionar uma função que é chamada antes de executar qualquer comando git (ou seja, quando o VSCode é inicializado e o provedor git está carregando). Onde eu faço isso? Não consigo entender o que é o fluxo do código.

Existe um trecho de código que é chamado sempre que uma chamada Git é feita? Nesse caso, você pode solicitar a senha na primeira vez que for chamada.

Olhando para ele, colocar um gancho em Git.ts seria o caminho a percorrer, dentro de qualquer função que significaria conectar-se ao servidor. (Como buscar, puxar, empurrar, etc).

(Eu me ofereceria para fazer isso sozinho, mas nunca escrevi nada em TypeScript, ou trabalhei com extensões VSCode, então isso é baseado apenas em mim cavando brevemente no código no GitHub.)

O maior problema é que no Windows as variáveis ​​SSH_AUTH_SOCK e SSH_AUTH_PID podem estar disponíveis para todos os processos ou apenas uma única sessão de console dependendo de como o ssh-agent foi iniciado. Portanto, é muito mais fácil iniciar um agente ssh de dentro do VSCode em vez de reutilizar os existentes (pelo menos no Windows).

Em termos práticos, isso significa que o usuário terá que fornecer sua frase-senha UMA VEZ antes que a primeira operação do Git seja concluída. As instâncias VSCode podem compartilhar os agentes ssh entre si se pudermos definir um local codificado onde SSH_AUTH_SOCK seria criado para que outras instâncias VSCode possam examiná-los antes de iniciar seus próprios agentes.

Este está se tornando um desafio bastante interessante para mim. 😃

Também seria uma opção viável se vscode honrasse um SSH_AUTH_SOCK já existente. Minha senha de chave privada está sendo solicitada, embora o ssh-agent já esteja em execução no meu sistema. Curiosamente, posso usar o git no terminal integrado vscode (shell). O plugin git e o terminal devem se comportar da mesma forma para facilitar a depuração.

EDIT: Estou no commit f9d0c687ff2ea7aabd85fb9a43129117c0ecf519
EDIT2: Funciona quando executo o vscode a partir de um bash em vez de usar o inicializador do gerenciador de janelas.

Sim - iniciar o VSCode a partir de uma sessão que já os possui configurados no ambiente funciona perfeitamente (inicialização do Powershell no meu caso). Portanto, se eles já estiverem configurados, não há nada a fazer.

algum progresso nisso?

@ezamelczyk Nope. Eu sinto Muito. Não tenho conseguido dedicar tempo suficiente a isso por causa da faculdade. Obrigado por me lembrar btw. Vou tentar fazer um trabalho na próxima semana.

Olá a todos,

Infelizmente, estou tendo o mesmo tipo de problema ... 😭
Aqui está minha configuração e o cenário detalhado para reproduzi-la.
Espero que ajude um pouco!

SO : macOSX Sierra Versão 10.24.4
VScode : Versão 1.11.1

Na minha pasta .ssh , tenho esses arquivos:

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

O conteúdo do arquivo de configuração :

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

Posso fazer commit e push sem problemas na linha de comando e na torre.
Mas eu não consigo no VScode ... ele me retorna esta mensagem de saída cada vez que tento:

git pull
Permissão negada (publickey).
fatal: não foi possível ler do repositório remoto.
Certifique-se de que possui os direitos de acesso corretos
e o repositório existe.

Obrigado pela ajuda

Para mim, isso é realmente um bloqueador. Eu gosto do VSC, mas sem a habilidade de usar o git não posso usá-lo como meu editor diário.

@MartinZubek @jmbelloteau Iniciar a partir de uma linha de comando onde você iniciou o Agente SSH corrige para você?

@andrewducker

No terminal, conectei ao meu Git remoto com o comando:

ssh -T [email protected]

... então eu abri o VScode do terminal com o comando:

code

Quando eu empurro do VScode, ainda recebo o mesmo erro ...
Isso é realmente um problema!

@MartinZubek mesmo aqui, VScode é incrível, muito mais que Atom.
Eu amo a velocidade do terminal integrado ao UX e a possibilidade de usar git.

Mas também precisamos de conexão com o GIT remoto para estarmos seguros. Isso significa proteger com senha SSH ...

Faz sentido ... certo?

@andrewducker De fato, funciona assim para mim. :)
Alguma chance de funcionar nativamente sem a necessidade de iniciá-lo na linha de comando?

Olá @MartinZubek ,

O que funciona para você? Você pode ser mais específico? 😄

@jmbelloteau Claro, ele não termina mais com o erro "Permission denied (publickey)" e git pull / push funciona como deveria. Ele usa a chave correta do arquivo ~ / .ssh / config e sempre que a senha da chave é necessária, esta janela aparece:
http://imgur.com/wpExMMP

@MartinZubek para que você possa empurrar do VScode ?! Isso é ótimo...
Você o inicializou de uma linha de comando onde iniciou o Agente SSH?
Se sim, como?
Não entendo porque não funciona no meu ambiente

@jmbelloteau Sim, iniciei o vscode da linha de comando que uso (é o git-bash.exe que vem com o git para Windows por padrão, para ser exato). Eu não tive que iniciar o ssh-agent ou qualquer coisa manualmente. Acho que começa automaticamente com git-bash ou algo assim.

@MartinZubek droga ...

Mesmo como você disse, não funciona para mim 😭

@vscodeteam Algum plano para lidar com esse problema?

@jmbelloteau É muito difícil. Também é bastante imprevisível. O que tentei implementar foi iniciar um agente ssh no processo de nó para que as variáveis ​​env fiquem disponíveis para o VSCode, mas isso significa que várias instâncias do VSCode precisarão de vários agentes ssh e ainda exigirão que as frases secretas sejam inseridas sempre.

Estou procurando uma maneira de usar a variável SSH_AUTH_SOCK em vez disso. Ele funciona no Linux, mas ainda não foi testado no Windows.

Há o problema adicional de OpenSSH vs Windows Powershell SSH vs PuTTY.

Se alguém estiver disposto a testá-lo, posso enviar o código para o meu fork e as pessoas podem testá-lo. Vai levar algum tempo, já que usei caminhos codificados (coisa de prova de conceito).

Acho que estarei pronto no sábado ou domingo.

Oi @hashhar !

Obrigado pela sua resposta.
Na verdade, parece muito complicado. 😞

Não sou um desenvolvedor de verdade, então não posso ajudar você. Vou ficar por perto caso você encontre a mágica e lhe envie boa sorte!

@hashhar em relação aos seus comentários, tenho 2 opções a sugerir:

  1. Você pode reiniciar todo o VSCode (incluindo o processo do nó ancestral) em ssh-agent , executado por ssh-agent path/to/code ; desta forma, não há necessidade de executar uma instância do ssh-agent para cada processo do nó.
  2. Você pode executar o ssh-agent a partir de um processo de nó, obter as variáveis ​​de ambiente (por exemplo, imprimi-las em um arquivo) e compartilhá-las em todos os processos.

Posso testar definitivamente. Eu preciso de algo específico para construí-lo? Eu instalei a versão oficial.
Eu posso construir :)

@joaomoreno Acho que tenho uma correção parcial pronta.

No arquivo extensions/git/src/askpass.ts , alterei getEnv() para:

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'
        }));
    }

O SSH_AUTH_SOCK é escolhido do ambiente do usuário, se definido.

As seguintes coisas agora são possíveis:

| agente ssh | chave ssh carregada no agente | resultado |
|: ---: |: ---: |: ---: |
| ✔ | ✔ | ✔ |
| ✔ | ✘ | $ SSH_ASKPASS é executado |
| ✘ | ✘ | nada acontece |

Portanto, para corrigir o problema na 2ª linha, podemos definir SSH_ASKPASS de askpass.ts também e isso faz com que o VSCode inicie o programa na inicialização e solicite a senha das chaves SSH.

Para a linha final, porém, precisaríamos iniciar um agente ssh de dentro do VSCode e definir as variáveis ​​adequadas.

Voluntários?

Se alguém quiser testar isso, você pode clonar meu fork (https://github.com/hashhar/vscode), mudar para o branch git-ssh-key e construí-lo e executá-lo. Tente verificar o que acontece em todas as combinações da tabela acima. Para manter o ruído mínimo aqui, você pode comentar sobre esse assunto .

@hashhar Todo o process.env é sempre passado para o Git ao ser gerado:

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

Essas variáveis ​​não são passadas sem o seu snippet?

@joaomoreno Ok. Indo mais fundo me mostra dois problemas.

  1. O VSCode aparentemente não usa a variável SSH_ASKPASS. Ele é codificado para '/ usr / lib / ssh-ssh-askpass'. Basicamente, o único problema é que o VSCode não ajuda o Git dizendo-lhe como iniciar um prompt para obter a frase-senha da chave ssh do usuário.

A maioria das ferramentas no Linux fornece um programa com link simbólico para '/ usr / lib / ssh / ssh-askpass', mas muitos não. Então esse é um problema que acho que as pessoas estão acertando.

Consegui usar o VSCode com SSH, desde que a chave ssh já tenha sido adicionada ao chaveiro do agente ssh.

Eu acho que fui estúpido.

FAÇAM:

  1. Estenda vscode-askpass.ts etc. para ssh também.
  2. Inicie o ssh-agent se ainda não estiver em execução. Este é apenas um problema de conveniência, caso contrário, você teria que inserir a senha para cada operação git.

Sinto por não ter trabalhado bem.

Não se preocupe, é legal que você esteja pulando nisso! 👍

Há algum tempo que encontro esse erro e pensei que fosse eu. Mais algum progresso nisso?

+1

+1

+1

+1

Por favor, pare de spam! Use o botão de inscrição e o botão de reação e não escreva comentários inúteis.

Eu também tenho o mesmo problema.

image

Estranhamente, para mim isso funciona no Git Bash, mas não no Bash para Windows (onde recebo o erro Permission denied (publickey) mencionado anteriormente):

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

Posso verificar se a chave SSH funciona por sshing diretamente para o remoto em ambos os casos; a única diferença que posso ver é que na inicialização do Bash para Windows, o VSCode avisa que não pode determinar o diretório de trabalho atual.

Mesmo problema aqui, tentei quase todas as soluções sugeridas.

Estou no MacOs

@DavidBabel Estou em MacOs e evitando temporariamente o problema usando a chave ssh sem senha longa ...

@letsdevus Obrigado pela ajuda, mas infelizmente não é viável em um contexto profissional

A única maneira que descobri de fazer funcionar foi:

  1. Instale o pacote PuTTY
  2. Defina plink como o back-end Git SSH (com a variável de ambiente GIT_SSH )
  3. Adicione ao PuTTYgen sua chave de acesso
  4. Antes de todas as operações, em um prompt de comando, use o plink para se conectar ao serviço que deseja usar

Isso resolve o problema.

Encontrando o mesmo problema e, ao mesmo tempo, repetindo suas tentativas de bater no desempenho do VSCode também 👎

Acabei de encontrar esse problema sozinho. Felizmente, a solução alternativa (iniciar o código do shell) funciona para mim, mas seria bom se o problema fosse corrigido.

Também dei de cara com isso, a solução de massa parece ajudar, mas eu preferia não usar massa alguma.

Estou lidando com esse problema também. Eu abri uma conta separada para o trabalho e tenho minha conta pessoal. Tenho trabalhado muito com arquivos de trabalho ultimamente. Consigo passar, mas preciso inserir a senha longa todas as vezes. Não é um assassino, mas muito menos produtivo.

É um pouco decepcionante que a tentativa de clonar um repositório usando a IU do VSC não funcione usando uma URL git no estilo ssh. Para registro, eu uso uma chave SSH protegida por senha e freqüentemente não estou executando o agente SSH. Acho que a solicitação de senha extra para desbloquear minha chave é realmente um tanto reconfortante - especialmente ao enviar alterações. :-) Não é enorme, porque a linha de comando funciona bem para mim (para registro, estou executando o código do VS no macOS.)

@gdamore então, realmente funciona para você, sem um agente ... Mas estamos falando do Windows. 😝
De qualquer forma, qual é o nome do arquivo da chave SSH? É um padrão? Ou o VSCode é bom o suficiente para localizar o arquivo adequado?

Eu executo o VScode principalmente no macOS, conforme indicado. Não tenho ideia de como isso funciona no Windows; Não faço o commit do Windows e, em vez disso, confio em sistemas de arquivos compartilhados (minha instância de desenvolvimento do Windows é executada como um convidado em uma VM no meu mac)

também estou recebendo este erro. sem problemas na linha de comando, mas incapaz de realizar qualquer atividade git dentro do próprio aplicativo

tornando vscode inútil como um git ide em um contexto de trabalho

Consegui fazer funcionar seguindo esta postagem do blog:

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

Mesmo problema no OSX com chaves protegidas por senha.

Solução simples:

Adicione uma variável de ambiente do usuário chamada GIT_SSH com caminho para C:\Program Files\PuTTY\plink.exe (depois de configurar o caminho para a chave privada usando tortoise git )

Isso precisa ser consertado, não faz do VS Code um editor diário. : / Alguma informação sobre o andamento do problema?

Adoraria que o vscode obtivesse as credenciais ssh de ssh-add .

Por exemplo, a árvore de origem é capaz de detectar as credenciais disponíveis (usando osxkeychain?), Sem nenhuma configuração extra

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

Eu enfrentei esse problema hoje, estou no linux mint. eu usei um chaveiro .

sudo apt install keychain

eval 'keychain --eval SSHKEY'
e é isso.

@ Silentz0r onde você executou o último comando?

@ValentinH em seu shell, leia o exemplo no link.

Gente, isso está apenas esperando por um corajoso codificador para fornecer um PR!

No OSX, eu conserto graças a https://github.com/jirsbek/SSH-keys-in-macOS-Sierra-keychain :

Em ~/.ssh crie config arquivo com o seguinte conteúdo:

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

@joaomoreno
Não tenho certeza de como sou "corajoso", mas sou um pouco fã de SSH.
Vou trabalhar em um PR para dezembro.

Todos os cidadãos interessados ​​...

Depois de um rápido teste de configuração, parece que a configuração do Windows 7 é bastante simples (veja GIT_SSH e outros comentários). Acredito que os comentários de que o OS X usando keychain é igualmente fácil.
A configuração é basicamente um problema de configuração externo. O VSC não precisa de nenhuma configuração ou alteração de recursos para usar o SSH, o git chama o cliente SSH. Desculpe se estou perdendo algo óbvio.

Além de um assistente para configuração, estou tentando determinar o que realmente seria benéfico para adicionar ao código.
Um comentário menciona o uso de mais de uma chave que pode exigir a alteração da variável de ambiente, presumivelmente com base na configuração do espaço de trabalho. Mesmo isso, tudo pode ser tratado pelo agente. Eu não acho que faça sentido fazer algo como adicionar ssh ao Code, já que o git cuida disso diretamente.

Quanto ao gerenciamento de credenciais: isso realmente quer ser tratado por um agente seguro, como
pagent / keychain et cetera.

Comentários?

"O VSC não precisa de nenhuma configuração ou alteração de recursos para usar SSH, git chama o cliente SSH. Desculpe se algo óbvio está faltando."

(No Windows)

O que acontece
Se eu iniciar o VS Code a partir de um atalho e não tiver baixado um software de terceiros e realizado alguma configuração de linha de comando, ele não funcionará com chaves SSH criptografadas.

Por outro lado, se eu abrir o Eclipse e me conectar a um repositório Git, ele me pedirá a senha longa para minhas chaves.

Esperado
Uma nova instalação do VSCode, em um sistema sem nenhum outro software instalado, deve abrir uma caixa de mensagem pedindo minha senha e, em seguida, usá-la para descriptografar minhas chaves e usá-las para se conectar ao repositório remoto.

@cleidigh SourceTree funciona automaticamente sem seguir as instruções de @ItachiSan , enquanto o Code requer essa configuração. Talvez possamos fazer o que eles estão fazendo.

@andrewducker
@BeginnerForLife
Eu olhei para o Eclipse e a árvore de origem um pouco. Infelizmente, no momento, não consigo instalar nenhum desses em meu sistema, então meu conhecimento e experiência são limitados pelo Google ;-) Lembre-se disso se algo estiver faltando. Aqui está uma sinopse / diferença básica:

Eclipse: plug-in EGit: contém o cliente git Java, o cliente ssh parece ser interno, requer importação de chave se a chave existente

SourceTree: cliente get gráfico, requer cliente ssh externo (a imagem abaixo assume plink no Windows) @BeginnerForLife Eu acho que esta configuração não está muito longe dos requisitos atuais.

image

VSC: requer git / ssh externo

@andrewducker sua descrição rastreia meu comentário, a menos que o Code implemente git e SSH (incluindo geração e gerenciamento de chaves). Não tenho certeza se há muito entre eles. Embora isso pudesse ser feito, estou cético de que a equipe iria querer puxar os dois. @joaomoreno pode falar sobre isso.
Do ponto de vista prático, gostaria de destacar o seguinte:

  • A experiência git "fácil de usar" está mais alinhada com o uso do HTTPS integrado, ainda requer git externo
  • Para aquelas situações de trabalho em que o SSH é necessário, eu diria que há uma política muito provável e ssh
    ferramentas já em vigor, foi o que experimentei nas várias empresas para as quais trabalhei.
  • Supondo que se concorde com o acima, o acoplamento a ferramentas externas seria o cenário mais provável do que
    configurar ssh / git do zero ou autônomo.
  • Para ser claro, de forma alguma quero dizer que o ssh não é útil e / ou não obrigatório, só estou dizendo que o VSC funciona e funciona facilmente apontando o git para um cliente SSH local.
  • Eu acho que isso poderia ser alcançado com uma extensão

Repetindo-me, sem git / ssh interno ao código, ainda estou para determinar uma opção menor. Estou absolutamente disposto a trabalhar nisso, mas tem que se alinhar com os objetivos da equipe e receber uma bênção de @joaomoreno em particular.

@cleidigh Eu não entendo qual é o plano.

@joaomoreno
Eu esperava mais respostas de outras partes, mas preciso de sua opinião / preferência sobre possíveis planos.
Só para ficar claro, o Code parece funcionar bem para acesso de chave privada SSH via git com apenas um pouco de configuração externa. Alguns aqui estão sugerindo maior integração e melhor experiência imediata.

Algumas abordagens possíveis:

1- Implementar git / ssh set up helper / Wizard - Encontrar ssh, definir GIT_SSH - adição interna
2- Igual a 1 implementado como extensão
3- Estenda acima para coordenar o download de SSH / git para configuração inicial
4- Implementar cliente / ferramentas SSH - adição interna
5- Igual a 4 implementado como extensão
6- Implementar git / SS H internamente - semelhante ao eclipse / egit

Acho que o número 1 é suficiente (talvez 3), apesar do fato de não implementar tudo o que as pessoas estão falando. As opções 4 a 6 parecem exigir muito esforço e uma grande mudança nos componentes principais.

Preferências @joaomoreno / all?

Pode ser uma boa ideia tentar usar o VS Code com Git no Windows e identificar os pontos fracos. Para mim, o principal problema é a autenticação.

A opção 1 é definitivamente minha favorita.

@BeginnerForLife
Se tivéssemos alguma descoberta e configuração do helper / ssh, isso ajudaria?
Configurei o ssh para o git para Windows, além de instalar o cliente (já tinha) acabei de configurar o GIT_SSH
também adicionou impressão digital de chave com o agente.

Focando na opção um por preferência @joaomoreno :

  • Detectar espaço de trabalho com repositório usando ssh, iniciar auxiliar
  • Forneça o comando para iniciar o helper a qualquer momento
  • Procure SSH instalado, verifique se a variável de ambiente está definida
  • Avisar o usuário se nenhum SSH for encontrado, sugerir / apontar clientes apropriados
  • oferecer para definir uma variável de ambiente
  • solicitar ao usuário a chave privada para usar e adicionar impressão digital ao agente

Eu acredito, mas não posso prometer que tudo isso é prático. Supondo que ninguém tenha outra ideia brilhante
Acho que seria bom basicamente fazer um protótipo do acima.

Comentários adicionais são bem-vindos.

Sim, acho que esses marcadores devem cobrir isso. Esse último em particular (avisar o usuário ...) deve resolver muitos problemas das pessoas.

@BeginnerForLife
Obrigado. Vou começar com essa abordagem e espero que outros concordem com qualquer outra contribuição.
Acho que vou postar um ponteiro no meu repositório antes de fazer um PR para ver o que as pessoas pensam. Volte aqui
para rastrear meu progresso.

Eu concordo que (1) é a melhor abordagem. E é basicamente o que eu faço no momento - iniciar o ssh-agent se ainda não estiver em execução e definir as variáveis ​​de ambiente, em seguida, iniciar o VS-Code a partir dessa linha de comando, para que ele pegue as variáveis ​​de ambiente.

Se o VS Code puder verificar se o SSH-Agent ainda não está em execução e iniciá-lo, se necessário, isso seria ótimo.

Eu uso o Módulo Git do PowerShell para fazer tudo isso - mas ele usa a lógica de:
https://help.github.com/articles/working-with-ssh-key-passphrases/
Espero que funcione, do ponto de vista do Node (embora provavelmente você precise verificar se funciona em todos os sistemas operacionais)

@andrewducker cc: all

Atualização: eu tive que voltar a um PR anterior, mas, na verdade, fiz um grande progresso nisso:

  • Além de coisas fáceis como verificar / configurar GIT_SSH, verificar o cliente git, o agente principal
  • Também descobri que parece que os principais agentes do Windows permitirão adições de chave após a inicialização
  • Acho que podemos instalar novas chaves em Code, iniciando o agente de chave que por sua vez solicitará uma senha longa.
  • A próxima experiência é se eu consigo detectar uma falha de login SSH

Deve ser capaz de voltar a isso em um dia ou assim.

O mesmo aqui no macOS High Sierra com uma chave privada padrão protegida por senha. A frase secreta é armazenada nas chaves do sistema operacional durante uma sessão de logon. Quando eu reinicializar meu mac, tenho que inseri-lo novamente antes do primeiro git pull / git push para alguma segurança extra e a senha não é mais solicitada desde então até eu fazer logoff. Veja como o terminal se comporta quando interajo com um repo remoto pela primeira 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

No entanto, quando é VSCode que está tentando puxar algo após uma reinicialização, este erro aparece:

screen shot 2018-02-12 at 11 05 09

A solução alternativa é abrir um terminal, navegar até o repo e digitar git pull . Não é um desastre, mas pode ser melhorado.

__UPD: __ Curiosamente, quando se trata de pedir uma senha de chave GPG para assinar novos commits, o VSCode funciona imediatamente e mostra uma janela pop-up com um campo de entrada.

Qual é o status disso?

Atualmente, o erro Git: [email protected]: Permission denied (publickey). é mostrado.

Os usuários que criaram um par de chaves em ~\.ssh podem autenticar por meio da linha de comando digitando a senha do par de chaves, mas não de dentro do VS Code.

@cleidigh alguma sorte?
Alguém tem ideia de como podemos interceptar o evento de solicitação de senha? Eu acho que depois de ter interceptado, posso ter a chance de fazer o que o átomo faz e fornecer uma caixa de texto para usar. Mas atm estou sem idéias.

Tive todos os tipos de problemas de credencial, até perceber que o problema não é com o VSCode, mas com o ambiente. Se você configurou corretamente o ssh, git e assim por diante, não terá problemas, isso é verdade para Linux e Windows. E se algo der errado, você pode forçar através do terminal.

Não preciso configurar o ambiente para outros IDEs.
No Eclipse, por exemplo, posso iniciá-lo diretamente e quando ele precisar acessar um repositório git remoto, ele me pedirá a senha para descriptografar minhas chaves SSH.
O Visual Studio Code deve fazer o mesmo.

Todos: atualização
embora eu tenha feito um grande progresso nisso, tive que deixá-lo de lado por vários motivos, então não fiz muito progresso desde janeiro. me desculpe por isso. Espero começar isso em maio.

Para @ john681611 @andrewducker

Conforme descrito anteriormente no tópico, o único problema fundamental que não pode ser implementado de forma "limpa"
está solicitando ou qualquer tipo de gerenciamento das chaves. Isso ocorre porque o Code depende de GIT externo e
O GIT depende dos sistemas SSH. Sem o Code implementando isso internamente (como o eclipse), temos opções limitadas de interação com esses componentes externos.

Meu protótipo atual pode fazer o seguinte:

  • verifique se algum repositório usa SSH se assim for iniciado o assistente de configuração para abaixo:
  • verifique e solicite a variável de ambiente GIT_SSH
  • verificar cliente SSH
  • forçar caixa de diálogo de senha do cliente, se possível (WIP) Observe que este prompt é do cliente, não do código

Eu concordei que seria bom para @andrewducker responder como o Eclipse, mas isso significaria que a equipe teria que implementar uma parte significativa da funcionalidade que já está cuidando.

Observação: outra abordagem seria se pudéssemos fazer com que o cliente GIT oficial lidasse com mais parâmetros de segurança que pudéssemos usar para controlar o SSH. Isso manteria a arquitetura atual a mesma

Tudo / Atualizar

Tenho trabalhado na última e mais importante parte do protótipo: um askpass shim para permitir que o Code forneça um prompt de interface de usuário de frase secreta nativa. Atualmente acredito que isso seja possível e em conjunto com o ssh-agent apropriado da plataforma, as credenciais serão armazenadas de maneira normal.

Meu problema é que não consigo fazer com que SSH ou GIT honrem SSH_ASKPASS, GIT_ASKPASS ou core.askpass no GIT Bash ou CMD no Windows. o prompt do terminal é a única coisa que aparece. Como o teste mais básico, eu defini um ou todos eles no git-gui - askpass integrado, mas isso também não funciona, apesar de o programa ser executável se testado na linha de comando.

Alguém utilizou esses métodos para alterar a entrada da frase secreta no Windows ou em qualquer outro cenário relevante?

Sourcetree apenas exibe um terminal também. Não é tão ruim.

Para adicionar à solução de UseKeychain corrige o problema na minha máquina (macOS 10.13.5 High Sierra Developer Beta, 17F70a). A diretiva AddKeysToAgent não parece ser necessária. Esta configuração funciona para mim:

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

Qual é o status disso?

'14581: VS Code requer que as chaves git ssh sejam nomeadas como "id_rsa"' foi fechado como uma duplicata deste problema. Não tenho certeza se vejo como isso é uma duplicata - "Suporte git com senha de chave privada". Esses parecem problemas separados.

EDIT: esta foi apenas uma correção para a única instância do terminal que eu estava executando; até mesmo abrir um novo terminal na mesma sessão de código resultou no erro de chave pública novamente

Parece que meu agente ssh morreu em algum ponto ou esqueceu minha chave não "id_rsa" que eu uso para git. Então eu apenas corri:

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

e tudo voltou ao normal. Esta é a sequência de comandos que o GitHub diz para você executar ao configurar uma nova chave SSH de qualquer maneira.

Admito que não li a maior parte deste tópico, mas para mim funcionou.

@cleidigh @joaomoreno isto pode não ser um bug, mas sim uma configuração inadequada das chaves ssh, particularmente no macOS. Sierra mudou radicalmente como as chaves são mantidas na sessão

Eu apenas resolvo quando eu regenero uma nova sshkey sem a senha. Acho que talvez o vscode não possa abrir um shell para permitir que você digite a senha longa.

Só precisava adicionar minha chave ao chaveiro do Mac com ssh-add -K ~/.ssh/id_rsa ; substitua id_rsa pela sua chave se você não estiver usando o padrão.

Uma solução alternativa para o Windows 10:

  1. Faça o Git usar o OpenSSH que vem com o Windows em vez do que vem com o Git.
    git config --global core.sshCommand "C:/Windows/System32/OpenSSH/ssh.exe"
  2. Configure o serviço ssh-agent (não aquele que vem com git) para rodar automaticamente.
    Abra o Gerenciador de Tarefas, guia Serviços e clique em Abrir Serviços.
    Encontre o agente de autenticação OpenSSH, abra as propriedades, defina o tipo de inicialização como automático e clique em OK.
    Também inicie o serviço ou reinicie o computador.
  3. Adicione sua chave protegida por senha ao agente.
    ssh-add
    Ele deve coletar automaticamente as chaves armazenadas em C: \ Users \% USERNAME% \. Ssh, que é onde ssh-keygen as cria.
    Digite sua (s) senha (s) no prompt.

Nota: Se, ao instalar o Git para Windows, você selecionou a opção de adicionar comandos bash ao PATH, o comando ssh-add pode apontar para o executável errado. Nesse caso, você pode executar manualmente o incluído para que sua chave seja adicionada ao agente:
C:\Windows\System32\OpenSSH\ssh-add.exe

Agora, o agente de autenticação OpenSSH integrado será executado na inicialização com sua chave protegida por senha desbloqueada, e o Git usará o OpenSSH do Windows em vez de seu próprio. Portanto, não há necessidade de digitar sua senha todas as vezes, não há necessidade de iniciar manualmente o agente ssh e não há necessidade de iniciar o VS Code a partir da linha de comando.

Exatamente como LynnScarlett notou, não há como inserir a frase secreta para a chave e usar as chaves não é seguro, então o VSC adicionará suporte para esse recurso básico?

Não consigo ver como o Keychain não é seguro. Além disso, IDEs populares permitem a entrada de senha, de modo que o VSC poderia suportar ambos os métodos de entrada

Eu quis dizer ssh-agent, posso estar confundindo duas coisas, não tenho certeza:)

O agente Ssh é apenas “inseguro” no sentido de que carrega a chave por sessão. Você tem outros problemas se tiver um computador comprometido

Isso explica a insegurança de usar ssh-agent em mais detalhes:
http://rabexc.org/posts/pitfalls-of-ssh-agents
Felicidades!

Tudo isso se resume a: não confie sua máquina a outra pessoa que tenha acesso root - o que você não deveria fazer de qualquer maneira. Então, novamente: se o ssh-agent estiver comprometido devido aos detalhes naquele artigo, você terá problemas maiores

A solução

Versão do código VS: Código 1.27.2 (f46c4c4, 2018-09-12T16: 17: 45.060Z)
Versão do sistema operacional: Windows_NT x64 10.0.17134
git versão 2.19.0.windows.1

Ainda não funciona.

Já se passaram dois anos e ainda não há solução para isso. O mesmo problema se aplica ao Atom, então acho que isso não é algo que pode ser adicionado facilmente. Tudo o que eu realmente quero é Push (com senha) na lista suspensa Mais ações ... git no painel de controle de origem.

Fico feliz em digitar a senha em cada push, só não quero ir para a linha de comando e digitar comandos git brutos.

Já se passaram dois anos e ainda não há solução para isso. O mesmo problema se aplica ao Atom, então acho que isso não é algo que pode ser adicionado facilmente. Tudo o que eu realmente quero é Push (com senha) na lista suspensa Mais ações ... git no painel de controle de origem.

Fico feliz em digitar a senha em cada push, só não quero ir para a linha de comando e digitar comandos git brutos.

Tente clonar o repo com https em vez de ssh. Isso faz com que o VS Code me peça nome de usuário e senha.

Acabei de vir do Atom para verificar Github Pull Request no VS Code e a primeira coisa que penso é

Certifique-se de que possui os direitos de acesso corretos
e o repositório existe.

git show: index.html
git pull --tags origin master
git show: index.html
[email protected] : Permissão negada (publickey).
fatal: não foi possível ler do repositório remoto.
Certifique-se de que possui os direitos de acesso corretos
e o repositório existe.

então não vou usar a opção apenas com a tecla ssh sem digitar minha senha também.
Portanto, voltarei ao código VS e à extensão Github Pull Request mais tarde.
Eu amo o que a comunidade tem feito até agora e estou ansioso para usar isso no futuro com minha preferência de segurança.

Tente clonar o repo com https em vez de ssh. Isso faz com que o VS Code me peça nome de usuário e senha.

Obrigado, isso funciona para mim também. E se você instalar o gerenciador de credenciais Git para Windows e digitar o seguinte comando no shell git bash no código VS:
git config --global credential.helper manager
Em seguida, a sincronização e os pulls funcionam sem a necessidade de redigitar o ID de usuário e a senha do Gitlab.

Seria bom se alguém pudesse fazer o mesmo para SSH, visto que esse é o caminho padrão do repositório Gitlab.

@whatsyourgithub , gostaria de usar sua solução (parece melhor do que "iniciar VSC via prompt de comando" primitivo e
Git: tal identidade não existe: /C/Users/myuser/.ssh/myrsaKey_rsa
Mesmo que o arquivo esteja lá.
E, outra coisa ... enquanto tento C: \ Windows \ System32 \ OpenSSHssh-add.exe, também recebo o arquivo ou diretório Nenhum.
Estou usando o VSCode PowerShell para digitar esses comandos
Alguma ideia?

Mudei para https em vez de SSH. Essa é a única maneira de fazê-lo funcionar bem. Curiosamente, o Github realmente recomenda o uso de https em vez de SSH.

@whatsyourgithub , gostaria de usar sua solução (parece melhor do que "iniciar VSC via prompt de comando" primitivo e
Git: tal identidade não existe: /C/Users/myuser/.ssh/myrsaKey_rsa
Mesmo que o arquivo esteja lá.
E, outra coisa ... enquanto tento C: \ Windows \ System32 \ OpenSSHssh-add.exe, também recebo o arquivo ou diretório Nenhum.
Estou usando o VSCode PowerShell para digitar esses comandos
Alguma ideia?

Eu tentaria abrir o Powershell fora do VS Code primeiro, embora isso não importasse.

O OpenSSH deve vir instalado com as versões mais recentes do Windows 10. Tente atualizar.
Se isso não funcionar, tente ir para Configurações> Aplicativos> Aplicativos e recursos> Gerenciar recursos opcionais> Adicionar um recurso e procure OpenSSH.

@whatsyourgithub , gostaria de usar sua solução (parece melhor do que "iniciar VSC via prompt de comando" primitivo e
Git: tal identidade não existe: /C/Users/myuser/.ssh/myrsaKey_rsa
Mesmo que o arquivo esteja lá.
E, outra coisa ... enquanto tento C: \ Windows \ System32 \ OpenSSHssh-add.exe, também recebo o arquivo ou diretório Nenhum.
Estou usando o VSCode PowerShell para digitar esses comandos
Alguma ideia?

Eu tentaria abrir o Powershell fora do VS Code primeiro, embora isso não importasse.

O OpenSSH deve vir instalado com as versões mais recentes do Windows 10. Tente atualizar.
Se isso não funcionar, tente ir para Configurações> Aplicativos> Aplicativos e recursos> Gerenciar recursos opcionais> Adicionar um recurso e procure OpenSSH.

Oi.
Obrigado por responder.
OpenSSH (cliente) já foi instalado.
Repeti o procedimento usando o PowerShell autônomo, mas continuo recebendo a mensagem de erro
no such identity: /C/Users/<user>/.ssh/RSAPRIVKEY_rsa: No such file or directory
Isso está relacionado à propriedade do RSAPRIVKEY_rsa? Eu não emiti a chave usando o PowerShell, mas a copiei de outro lugar (de qualquer forma, ela funciona com a árvore de código-fonte ou com a GUI do Git)

@whatsyourgithub , gostaria de usar sua solução (parece melhor do que "iniciar VSC via prompt de comando" primitivo e
Git: tal identidade não existe: /C/Users/myuser/.ssh/myrsaKey_rsa
Mesmo que o arquivo esteja lá.
E, outra coisa ... enquanto tento C: \ Windows \ System32 \ OpenSSHssh-add.exe, também recebo o arquivo ou diretório Nenhum.
Estou usando o VSCode PowerShell para digitar esses comandos
Alguma ideia?

Eu tentaria abrir o Powershell fora do VS Code primeiro, embora isso não importasse.
O OpenSSH deve vir instalado com as versões mais recentes do Windows 10. Tente atualizar.
Se isso não funcionar, tente ir para Configurações> Aplicativos> Aplicativos e recursos> Gerenciar recursos opcionais> Adicionar um recurso e procure OpenSSH.

Oi.
Obrigado por responder.
OpenSSH (cliente) já foi instalado.
Repeti o procedimento usando o PowerShell autônomo, mas continuo recebendo a mensagem de erro
no such identity: /C/Users/<user>/.ssh/RSAPRIVKEY_rsa: No such file or directory
Isso está relacionado à propriedade do RSAPRIVKEY_rsa? Eu não emiti a chave usando o PowerShell, mas a copiei de outro lugar (de qualquer forma, ela funciona com a árvore de código-fonte ou com a GUI do Git)

ESTÁ BEM. Resolvi ... No arquivo ./ssh/config eu tinha o caminho para a chave ssh s C: \ Usuários \.ssh \ RSAKEY_rsa e mudou para ~ / .ssh / RSAKEY_rsa
Depois, bastava registrar a chave e pronto.
obrigado

@whatsyourgithub , desculpe incomodar novamente. Estou tentando ajudar meu colega e ele não está conseguindo (fazer o que você sugeriu acima funciona para mim, mas não para ele). Estes são os sintomas:
Ele é capaz de executar um git fetch do console PS, mas quando ele empurra ou sincroniza usando gitacora (o plug-in para sincronizar automaticamente - que também uso sem problemas), ele recebe a seguinte mensagem de erro:
Permission denied (publickey).
Sabemos que a chave foi adicionada pelo OpenSSH porque C:\Windows\System32\OpenSSH\ssh-add.exe -L recupera sua chave pública e porque se usarmos o comando git fetch do PS, ele funciona.
Alguma ideia de como posso ajudá-lo a diagnosticar / consertar?

@whatsyourgithub , desculpe incomodar novamente. Estou tentando ajudar meu colega e ele não está conseguindo (fazer o que você sugeriu acima funciona para mim, mas não para ele). Estes são os sintomas:
Ele é capaz de executar um git fetch do console PS, mas quando ele empurra ou sincroniza usando gitacora (o plug-in para sincronizar automaticamente - que também uso sem problemas), ele recebe a seguinte mensagem de erro:
Permission denied (publickey).
Sabemos que a chave foi adicionada pelo OpenSSH porque C:\Windows\System32\OpenSSH\ssh-add.exe -L recupera sua chave pública e porque se usarmos o comando git fetch do PS, ele funciona.
Alguma ideia de como posso ajudá-lo a diagnosticar / consertar?

Parece que a chave dele não está vinculada à conta do github ou que a conta do github não foi adicionada como colaboradora no repo.

Parece que a chave dele não está vinculada à conta do github ou que a conta do github não foi adicionada como colaboradora no repo.

Estou gerenciando o servidor bitbucket e adicionei sua chave de pub (e, na verdade, ele pode acessar buscar e enviar quando usa a linha de comando via PowerShell).
Ou é algo que não entendi em sua resposta?

Só precisava adicionar minha chave ao chaveiro do Mac com ssh-add -K ~/.ssh/id_rsa ; substitua id_rsa pela sua chave se você não estiver usando o padrão.

macOS High Sierra vs código
[email protected] : Permissão negada (publickey).
fatal: não foi possível ler do repositório remoto.

Marcá-lo porque corrigiu o problema com o git integrado não funcionando no vscode, embora funcionasse perfeitamente na linha de comando.

@whatsyourgithub Parece funcionar via git config --global core.sshCommand "C:/Windows/System32/OpenSSH/ssh.exe" depois de gerar um novo id_rsa.

  1. Mas a chave tem uma senha, quando pressiono não há nenhuma caixa de diálogo de janela de prompt para me permitir inserir minha senha.
  2. Se eu usar uma chave que saiu do meu PC via ssh-add .ssh\id_rsa , ocorrerá um erro. Por que não consigo adicionar a chave? Quero usar a mesma chave que adicionei 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

Alguma atualização?

Algum plano para lidar com isso em um futuro próximo?

De acordo com a documentação do VS Code (https://code.visualstudio.com/docs/editor/versioncontrol):

Posso usar a autenticação SSH Git com VS Code?
Sim, embora o VS Code funcione mais facilmente com chaves SSH sem uma senha longa. Se você tiver uma chave SSH com uma senha, você precisará iniciar o VS Code a partir de um prompt do Git Bash para herdar seu ambiente SSH.

Esta página foi datada de 12/12/2018.

Então, acabei de gerar novas chaves ssh sem uma senha (deixando-a vazia quando solicitado e sobrescrevendo as anteriores), adicionei-as à minha conta no GH e também adicionei a identidade ao agente ssh executando ssh-add.exe ~\.ssh\id_rsa . Agora, tudo funciona.

Se outros puderem confirmar isso, eu sugiro fechar este tópico, uma vez que a documentação oficial do VS Code já afirma explicitamente que ele só funcionará com senhas ao iniciar o VS Code a partir de git-bash.

Se outros puderem confirmar isso, eu sugiro fechar este tópico, uma vez que a documentação oficial do VS Code já afirma explicitamente que ele só funcionará com senhas ao iniciar o VS Code a partir de git-bash.

Bem, a documentação diz "mais facilmente", não que não funcione quando as chaves têm senhas, e sua sugestão de iniciar o VS Code a partir de um prompt do Git Bash é necessário apenas para aqueles que estão usando Git-para-Windows ' Agente SSH para gerenciar suas chaves.

Posso realmente confirmar que uso o agente SSH do Windows (não aquele que vem com o Git para Windows), carrego minha chave SSH (protegida por senha) nele e, em seguida, inicio o VS Code normalmente (não em qualquer prompt de comando específico) e Posso fazer push / pull com sucesso para repositórios que exigem minha chave.

Eu confirmo que abrir o VS Code via git bash pedirá a chave ssh e no código VS pedirá suas senhas ssh no terminal.

Eu tive um problema semelhante com o VSCode no Windows 10 não empurrando / puxando de _ ssh: // repo_ enquanto era possível no terminal.

Estou usando o CMDer com git-for-windows e o VSCode foi configurado com git.path apontando para esses binários. Eu também tenho o arquivo de configuração ssh no diretório _% USERPROFILE% \. Ssh_ com todas as opções necessárias e o arquivo de identidade definido como arquivo de chave pública. KeePass com KeeAgent está servindo as chaves.

O procedimento mencionado anteriormente para executar primeiro o terminal (CMDer) e, em seguida, executar o código a partir dele funciona bem, mas eu não gostei. Então, tentei (com sucesso) outra abordagem:
No diretório git.exe, criei o arquivo 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

(O caminho SSH_AUTH_SOCK precisa ter barras) e a opção git.path apontada no código para ele.

Agora o Code é iniciado, parece ler o arquivo _ ~ / .ssh / config_ sem quaisquer "hacks" adicionais e é capaz de usar o agente.

Editar:
Acho que definir a variável de ambiente SSH_AUTH_SOCK globalmente também ajudaria - com o custo das chaves sendo acessíveis por todos os aplicativos ...

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

Uma das coisas mais medíocres que ouvi da Microsoft; Eu não deveria ter que iniciar o VS Code a partir de uma linha de comando específica para fazer o ssh funcionar; talvez tente implementar uma solução adequada.

acúmulo? mesmo?

Este problema me levou a mudar para o powershell e posh-git, que funcionam razoavelmente bem. Para que o ssh-agent funcione perfeitamente, eu tive que adicionar o seguinte a $profile.CurrentUserAllHosts (o padrão é 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

Se outros puderem confirmar isso, eu sugiro fechar este tópico, uma vez que a documentação oficial do VS Code já afirma explicitamente que ele só funcionará com senhas ao iniciar o VS Code a partir de git-bash.

Eu tenho que discordar aqui: este problema é sobre a falta de suporte adequado à senha SSH no código do VS, e a solução alternativa documentada é simplesmente isso - uma solução alternativa. Já existem muitas tentações para o usuário preguiçoso pular uma boa segurança de senha, então qualquer ferramenta moderna deve tornar mais fácil fazer a coisa certa.

Com base no que outros sugeriram acima, acabei de criar um arquivo de script bash (ou seja, projectName.sh ) e escrevi o seguinte nele:
"location/to/Code.exe" "location/to/project"

Agora tudo o que tenho a fazer é clicar duas vezes no arquivo para abrir o VSCode e trabalhar com um certificado com uma senha longa.

BTW: Caso isso ajude outras pessoas a se deparar com esse problema, eu também tive que: git config --global http.sslBackend schannel conforme descrito aqui .

Estou perplexo que, após dois longos anos, algo tão básico como "trabalhar com git usando ssh usando uma chave que TEM uma senha longa" ainda não foi resolvido sem usar soluções alternativas de aparência feia. VSCode é um ótimo editor IMHO, mas esse "recurso" é realmente necessário. Por favor, priorize

Aqui está uma postagem antiga que lancei sobre stackoverflow que pode ser útil; uma opção é usar o Windows Credential Manager: https://stackoverflow.com/questions/35110079/git-bash-pageant-not-using-keys/43313491#43313491

Acho que a questão é se o VSCode deve ser responsável por lidar com as credenciais SSH / HTTPS como um gerenciador de armazenamento de chaves. Parece que isso deve ser feito pelo sistema operacional, por um programa de terceiros ou por uma configuração adequada do git que se mistura com os dois primeiros pontos.

Por mais que eu goste do som desse recurso, parece que o Unix e o Windows devem ter maneiras de lidar com esse problema sem adicionar isso ao VSCode.

Não tenho certeza se algo aqui nestes artigos do github ajuda: https://help.github.com/articles/connecting-to-github-with-ssh/
No final das contas, parece que eles estão dizendo para você usar o bash no windows / outra alternativa do bash windows, o que leva as pessoas de volta ao mesmo problema com uma solução alternativa de hacky: \

@ctsstc Sim, instalei o Git Credentials Manager para Windows, mas por algum motivo, ele não está funcionando. Estou ciente de que isso pode não ser uma responsabilidade do VSCode. Por exemplo, no Android Studio e IDEs baseados em IDEA, eles só se preocupam em chamar o binário git, e a única integração que eles têm é quando a operação requer uma senha longa, o IDE persiste com segurança e a passa para o Git - talvez este seja um boa abordagem. Talvez essa seja a única coisa que eles estão perdendo?

@ctsstc Discordo totalmente, você não pode implementar uma interface de usuário para um programa CLI - significando GIT neste caso - e então alegar que quando o programa precisar de entrada não é mais seu problema ; se você não quer que as pessoas confiem no VC para usar o git, então você não deve ter integrado o git desde o início, não impeça o software, especialmente se ele deveria ter backup da Microsoft, e especialmente -assim as melhores práticas de segurança de décadas, como chaves SSH com senhas.

Acho que um ponto significativo aqui é que o Atom se lembrará das senhas SSH para git repos. Certamente o vscode pode fazer o mesmo, já que ambos são baseados no mesmo mecanismo de edição?

Acho que a questão é se o VSCode deve ser responsável por lidar com as credenciais SSH / HTTPS como um gerenciador de armazenamento de chaves.

Não acredito que deva, mas também não acredito que seja isso que está sendo pedido aqui. Como @Ivanca apontou, o VSC optou por apresentar uma UI por cima do git, então a questão é quanta funcionalidade do git deve ser exposta por meio dessa UI. Eu não esperaria que todas as operações git obscuras estivessem disponíveis por meio do VSC, mas pull / push são fundamentais - não acho que o VSC possa alegar suporte total a eles sem fornecer cola de IU para o desafio da frase secreta subjacente.

Portanto, o resultado esperado é solicitar a senha. Acho que é uma pergunta / recurso razoável.

Em vez de mostrar:

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

Sinto que vi essa funcionalidade recentemente no Mac, há alguns dias, mas talvez não esteja implementada no Windows ou talvez estivesse pedindo a senha do meu sistema para acessar o armazenamento de chaves do sistema.

Editar, tentei apenas no Mac:

image

Portanto, parece que isso é compatível com Mac, mas não com Windows (presumo que o problema ainda exista), então o recurso é ter paridade entre os dois sistemas operacionais.

Alguma atualização sobre isso? Já se passaram 2 anos desde que esse problema foi relatado e ainda não consigo fazer o VSCode funcionar com o Git SSH:
image

@ctsstc Posso confirmar que funciona no Mac na guia do terminal. O que está faltando é solicitar uma frase secreta ao usar as funções pull / push fetch da GUI. Ele simplesmente ignora o fato de você ter uma senha longa em sua chave e envia uma senha nula / nula, causando a falha da operação git.

Acredito firmemente que isso deve ser resolvido, independentemente se o VSC decidir armazenar em cache as credenciais da frase secreta. Não falhe quando houver uma frase secreta na chave rsa, solicite a chave.

Quando isso vai acontecer?

Isso vai ser consertado? Mesmo problema no Windows

Não parece esperançoso. Desisti e mudei de SSH para https.

Minha solução atual: geralmente tenho um terminal aberto no VSCode de qualquer maneira (usando-o para interagir com o npm, etc.), então eu simplesmente faço meu git push partir daí. Não é assim que _deve_ funcionar, mas pelo menos me pede minha senha.

No macOS, adicionei isso ao meu ~/.ssh/config no final (o que é importante, não coloque nada abaixo):

Host *
   AddKeysToAgent yes
   UseKeychain yes 

Então eu fiz um git pull para que o macOS pedisse minha senha ssh. Depois disso, o macOS nunca mais me pedirá a senha, portanto, o controle de versão do VSCode está funcionando como deveria.

Espero que ajude alguém.
Felicidades!

Outras soluções alternativas:

  • Use plink do putty em vez de ssh como git ssh commad e, em seguida, use pageant para carregar as chaves
  • Use git em http / https em vez de git em ssh

Alguém já experimentou um desses no Windows?

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

Eu uso win32-openssh, como acima, solução alternativa empurrando git do terminal. A falta de reconhecimento de caminhos ssh: // é um problema que já registrei e que está relacionado a isso. Meu principal caso de uso é usar a extensão sshfs, com a qual git e outras extensões como python não funcionam porque não sabem interpretar ssh: //

Existe algum plano para apoiar isso?

Isso ainda é um problema. As soluções alternativas não são uma opção para todos; por exemplo, minha máquina pode (potencialmente) ser acessada por outras pessoas e, portanto, não irei desbloquear minha chave. No meu caso, o git na linha de comando simplesmente pede a senha, eu diria que o VS Code deve fazer o mesmo em um pop-up.

Na verdade, meio que chocado por não ser um recurso após 2 anos, ainda me perguntando por que não foi escolhido e priorizado.

Atualmente usando a versão VSC 1.34.0
qwe
e o problema não foi corrigido.

Ainda tendo esse problema aqui também, no Windows 10. Eu me livrei do Putty agora que o OpenSSH está incluído no Windows 10, mas o VS Code não parece respeitar isso? Tenho que empurrar e puxar manualmente o terminal no VSCode, o que funciona bem, mas adorei poder apenas clicar em um botão para sincronizar.

@arcs- É improvável que isso seja corrigido, visto que o git não fornece uma maneira de interagir com o processo filho da chave SSH. Se sua máquina estiver acessível a outras pessoas, bloqueie-a quando estiver longe de sua mesa. Caso contrário, você pode iniciar o ssh-agent no macOS ou no Windows para contornar esse problema conforme descrito aqui: https://help.github.com/en/articles/working-with-ssh-key-passphrases

@ flaw600 Este processo só parece ajudar se eu lançar o código da mesma janela git-bash onde o ssh-agent foi inicializado, o que é um pouco desajeitado e impede o uso de extensões de clique com o botão direito no explorer.

O fato de ter passado mais de 3 anos e este link ainda aplicável parece lamentável.
https://nathan.alner.net/2015/08/24/vs-code-ide-with-passphrased-git-ssh-keys/

Abrindo code por meio do menu iniciar, ele ignora o agente ssh e falha ao puxar / empurrar.

Alguma sugestão? É um grande problema para fazer o desenvolvimento agora em comparação com outras plataformas.

Usar https tem sido a solução superior por algum tempo. É tão seguro, senão mais , já que você pode criar tokens específicos para acesso. O gerenciador de credenciais do Windows SCM cuida de tudo automaticamente.

Como bônus, tenho certeza de que o HTTPS é realmente mais rápido do que o SSH.

@gdamore : Quaisquer referências de evidências para apoiar sua afirmação de que HTTPS é
mais rápido do que SSH?

Na segunda-feira, 17 de junho de 2019 às 11h45, gdamore [email protected] escreveu:

Usar https tem sido a solução superior por algum tempo. É tudo como
seguro, se não mais , pois você pode criar tokens específicos para acesso.
O gerenciador de credenciais do Windows SCM cuida de tudo automaticamente.

Como bônus, tenho certeza de que o HTTPS é realmente mais rápido do que o SSH.

-
Você está recebendo isso porque comentou.
Responda a este e-mail diretamente, visualize-o no GitHub
https://github.com/microsoft/vscode/issues/13680?email_source=notifications&email_token=AFLBAENFUKYEOE3WLKBGCJLP265Q7A5CNFSM4CSXV3P2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODX3YNJI#issuecomment-502761125 ,
ou silenciar o tópico
https://github.com/notifications/unsubscribe-auth/AFLBAEOC5BVCGGJ7EDXTINTP265Q7ANCNFSM4CSXV3PQ
.

Não especificamente com git, mas em outros usos (cópias de arquivos grandes), vimos isso. Eu acho que realmente se relaciona com coisas definidas na camada TCP onde SSH parece ter valores que são mais apropriados para uso interativo, enquanto HTTP tende a ser mais otimizado para realmente mover arquivos, que é realmente o que o git está fazendo neste caso.

Eu odeio dizer isso, mas magicamente começou a funcionar para mim. Não tenho certeza se estava iniciando SSH por meio do Powershell ou CMD - não tenho ideia! Apenas um monte de tentativas e então funcionou magicamente.

No Windows, você pode usar pageant como seu agente SSH e definir a variável env GIT_SSH para plink . Ambas as ferramentas fazem parte do PuTTY e também vêm com o TortoiseGit.

Não me faz bem em um Mac

Na quarta-feira, 3 de julho de 2019, 11h44, Justin [email protected] escreveu:

No Windows, você pode usar o pageant como seu agente SSH e definir env
variável GIT_SSH para plink. Ambas as ferramentas são parte do PuTTY e também
empacotado com TortoiseGit.

-
Você está recebendo isso porque comentou.
Responda a este e-mail diretamente, visualize-o no GitHub
https://github.com/microsoft/vscode/issues/13680?email_source=notifications&email_token=AFBZHXFVMRQ4DBPV2TLBBGTP5TJN7A5CNFSM4CSXV3P2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODZFAWSQ#issuecomment-508169034 ,
ou silenciar o tópico
https://github.com/notifications/unsubscribe-auth/AFBZHXD63DGD5FUXRJYMLXDP5TJN7ANCNFSM4CSXV3PQ
.

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

Por que isso ainda é uma coisa?

nossa, então depois de 3 anos ainda não é possível conectar o código VS via ssh, pelo menos iniciá-lo pela linha de comando

Bem, eu não superei a senha porque não a configurei, mas de alguma forma consegui deixar o VSCode pelo menos configurado para usar ssh uma vez aberto como root (ou pelo Windows como administrador). Isso é depois que eu instalei o Openssh ou no Windows configurei a conexão com o Putty. Após verificar a configuração do ssh e instalado, conforme instrução aqui https://help.github.com/en/articles/testing-your-ssh-connection . Consulte-o também, ele fornece muitos insights úteis, já que cada caso depende de como você configurou seu agente SSH e o sistema operacional (estou executando o Ubuntu 18.04) https://help.github.com/en/articles/ error-permission-denied-publickey

Usando a versão 1.36.1, ainda não consigo conectar ao Github via SSH com uma senha - tive que tirar a senha da minha chave. O que é tão difícil? Com HTTPS você pede o usuário e senha git ... (várias vezes, por isso não quero usá-lo).

Isso é meio chato. Usar uma senha com sua chave SSH promove uma boa segurança. É tecnicamente uma forma de 2FA (o que você tem: a chave + o que você sabe: a senha). Estou usando este editor no MacOS e é realmente irritante entrar no console para todas as operações do git. VS Git UI simplesmente falham. Deve aparecer uma entrada de senha

No macOS, adicionei isso ao meu ~/.ssh/config no final (o que é importante, não coloque nada abaixo):

Host *
   AddKeysToAgent yes
   UseKeychain yes 

Então eu fiz um git pull para que o macOS pedisse minha senha ssh. Depois disso, o macOS nunca mais me pedirá a senha, portanto, o controle de versão do VSCode está funcionando como deveria.

Espero que ajude alguém.
Felicidades!

O acima funciona para mim. Talvez uma observação possa ser inserida aqui: https://code.visualstudio.com/docs/setup/mac

Isso seria ótimo para obter uma resolução ou uma solução alternativa adequada no Windows.

A “solução adequada” é usar URLs HTTPS em vez de SSH, junto com o gerenciador de credenciais git-scm. Funciona perfeitamente para mim.

Enviado do Mail para Windows 10

De: Kai Richardson
Enviado: quarta-feira, 28 de agosto de 2019 9:33
Para: microsoft / vscode
Cc: gdamore; Menção
Assunto: Re: [microsoft / vscode] Suporte git com senha de chave privada (# 13680)

Isso seria ótimo para obter uma resolução ou uma solução alternativa adequada no Windows.
-
Você está recebendo isso porque foi mencionado.
Responda a este e-mail diretamente, visualize-o no GitHub ou ignore a conversa.

@gdamore, essa não é a solução alternativa correta. Esse problema é específico para o uso do protocolo SSH. Algumas pessoas podem estar usando um servidor Git onde os administradores não permitem especificamente operações http (s) do Git, portanto, dizer a eles para usar https não oferece nenhuma solução para eles.

@ Kai-Richardson Funciona no Windows se você configurar o Git para usar um comando SSH que ofereça suporte a um agente SSH e abrir a chave nesse agente.

  1. TortoiseGit: Defina a variável env GIT_SSH para TortoiseGitPlink.exe na sua pasta de instalação do TortoiseGit, converta as chaves privadas para o formato PPK com o puttygen.exe incluído e depois abra as chaves privadas em pageant.exe . Você poderia simplesmente PuTTY em vez de TortoiseGit, nesse caso definir GIT_SSH para plink.exe e usar puttygen / pageant.
  2. Instale o MS OpenSSH oficial ( link , eu uso chocolatey com o recurso de agente SSH habilitado), inicie o serviço ssh-agent, abra a chave privada com ssh-add <path to key file> e defina a variável env GIT_SSH para ssh.exe (normalmente C:\Program Files\OpenSSH-Win64\ssh.exe ). Meu único problema aqui é após a versão 8.0 que parece ter problemas para ler chaves privadas com o tradicional (formato -----BEGIN RSA PRIVATE KEY----- , favorecendo o formato -----BEGIN OPENSSH PRIVATE KEY----- ).

Atualizei meu código de estúdio visual, não consigo mais interagir com meu github através do aplicativo. Versão 1.37.1

SO: Windows 10 Pro: versão: 10.0.17134 Compilação 17134

A equipe de MS odeia SSH?

Qual IDE realmente suporta senhas SSH? Porque os produtos da Jetbrains também não. Portanto, você tem 2 dos 3 principais fornecedores que não oferecem suporte nativo a senhas SSH (e o outro - Github - não sei se o editor Atom deles suporta senhas SSH nativamente).

Em 29 de agosto de 2019, às 20h43, Chris Migut [email protected] escreveu:

Atualizado pelo código do Visual Studio, não consigo mais interagir com meu github por meio do aplicativo. Versão 1.37.1

A equipe de MS odeia SSH?

-
Você está recebendo isso porque foi mencionado.
Responda a este e-mail diretamente, vê-lo no GitHub https://github.com/microsoft/vscode/issues/13680?email_source=notifications&email_token=ACKS4GSGFBF2OGBCXPN55LDQHB3NLA5CNFSM4CSXV3P2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD5QI7ZA#issuecomment-526421988 , ou silenciar o fio https://github.com/notifications/ unsubscribe-auth / ACKS4GTHNDBY5DETIRNVX6TQHB3NLANCNFSM4CSXV3PQ .

Eu cometi algum erro? Acabei de inicializar o Kali Linux como uma inicialização dupla no Windows

  1. Tudo correu bem e perfeito após um longo processo, mas de alguma forma o
    dispositivo conectado ao git sendo anexado e marcado junto e quando tento
    pegue o caminho. Booommmmm tantos arquivos sendo puxados para o meu disco rígido ... O que
    está acontecendo ????

PrinceKK301088

No sábado, 31 de agosto de 2019, 8:59 am flaw600, [email protected] escreveu:

Qual IDE realmente suporta senhas SSH? Porque os produtos da Jetbrains
também não. Então você tem 2 dos 3 principais fornecedores que não oferecem suporte a SSH
senhas nativamente (e a outra - Github - só não sei se a
O editor Atom suporta senhas SSH nativamente).

Em 29 de agosto de 2019, às 20h43, Chris Migut [email protected]
escrevi:

Atualizado pelo código do Visual Studio, não posso mais interagir com meu github
através do aplicativo. Versão 1.37.1

A equipe de MS odeia SSH?

-
Você está recebendo isso porque foi mencionado.
Responda a este e-mail diretamente, visualize-o no GitHub <
https://github.com/microsoft/vscode/issues/13680?email_source=notifications&email_token=ACKS4GSGFBF2OGBCXPN55LDQHB3NLA5CNFSM4CSXV3P2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD5QI7ZA#issuecomment-526421988>,
ou silenciar o tópico <
https://github.com/notifications/unsubscribe-auth/ACKS4GTHNDBY5DETIRNVX6TQHB3NLANCNFSM4CSXV3PQ
.

-
Você está recebendo isto porque está inscrito neste tópico.
Responda a este e-mail diretamente, visualize-o no GitHub
https://github.com/microsoft/vscode/issues/13680?email_source=notifications&email_token=AH4ENDPM4O6N2MT3BFLXGRTQHG66NA5CNFSM4CSXV3P2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD5TCASY#issuecomment-526786635 ,
ou silenciar o tópico
https://github.com/notifications/unsubscribe-auth/AH4ENDORTBRU3GTGOWJFOVLQHG66NANCNFSM4CSXV3PQ
.

Qual IDE realmente suporta senhas SSH? Porque os produtos da Jetbrains também não. Portanto, você tem 2 dos 3 principais fornecedores que não oferecem suporte nativo a senhas SSH (e o outro - Github - não sei se o editor Atom deles suporta senhas SSH nativamente).

Há um tópico duplicado https://puu.sh/B7qHY/57f3c89f47.png

O link é protegido por chave

Enviado do meu iPhone

Em 16 de setembro de 2019, às 13h32, vitasam [email protected] escreveu:

Qual IDE realmente suporta senhas SSH? Porque os produtos da Jetbrains também não. Portanto, você tem 2 dos 3 principais fornecedores que não oferecem suporte nativo a senhas SSH (e o outro - Github - não sei se o editor Atom deles suporta senhas SSH nativamente).

Em 29 de agosto de 2019, às 20:43, Chris Migut @. * > escreveu: Atualizado pelo código do visual studio, não posso mais interagir com meu github através do aplicativo. Versão 1.37.1 A equipe MS odeia SSH? - Você está recebendo isso porque foi mencionado. Responda a este e-mail diretamente, vê-lo no GitHub <# 13680? Email_source = notificações & email_token = ACKS4GSGFBF2OGBCXPN55LDQHB3NLA5CNFSM4CSXV3P2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD5QI7ZA # issuecomment-526421988>, ou silenciar o fio https://github.com/notifications/unsubscribe-auth/ACKS4GTHNDBY5DETIRNVX6TQHB3NLANCNFSM4CSXV3PQ.

Há um tópico duplicado sobre o mesmo problema, alguém disse que o Atom suporta a chave SSH nativamente: https://puu.sh/B7qHY/57f3c89f47.png

-
Você está recebendo isso porque foi mencionado.
Responda a este e-mail diretamente, visualize-o no GitHub ou ignore a conversa.

Interessante, posso abrir o link. A caixa de diálogo do Atom:
atom_ssh_key_pass

além de adicionar as entradas de configuração ssh acima

se janelas

Set-Service ssh-agent -StartupType Automatic 

em PowerShell
agora o código vs não deve aparecer ...

além de adicionar as entradas de configuração ssh acima

se janelas

Set-Service ssh-agent -StartupType Automatic 

em PowerShell
agora o código vs não deve aparecer ...

Estou recebendo algum erro de permissão com esta tentativa. Alguma sugestão?

Set-Service: o serviço 'OpenSSH Authentication Agent (ssh-agent)' não pode ser configurado devido ao seguinte erro: Acesso negado
Na linha: 1 caractere: 1
+ Set-Service ssh-agent -StartupType Automático
+ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~~~~
+ CategoryInfo: PermissionDenied: (System.ServiceProcess.ServiceController: ServiceController) [Set-Service], ServiceCommandException
+ FullyQualifiedErrorId: CouldNotSetService, Microsoft.PowerShell.Commands.SetServiceCommand

Estou recebendo algum erro de permissão com esta tentativa. Alguma sugestão?

@seantma : O PowerShell precisa ser executado como administrador para ter as permissões necessárias.

além de adicionar as entradas de configuração ssh acima
se janelas
Set-Service ssh-agent -StartupType Automático

em PowerShell
agora o código vs não deve aparecer ...

Não ajudou no meu caso, VCode retorna os seguintes erros, quando eu estava tentando sincronizar commit local com origem (remoto):

fatal: Could not read from remote repository.

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

Parece que o VCode não usa configuração GIT global (nome e e-mail), pode ser?

Fiz isso e funciona (não testado com uma chave ssh com senha longa):

  • Abra um novo terminal dentro do Visual Code, escolha a pasta do projeto atual se solicitado
  • VS irá abrir um terminal com Poweshell
  • Execute ssh-keygen.exe -> Digite, digite, digite ..... -> chave criada em .ssh na pasta do usuário (normalmente em C: \ Usuários \)
  • Copie o conteúdo da chave (.ssh / id_rsa.pub) e adicione à nova chave nas configurações do Github

É isso aí

Esta não é uma solução adequada, @ leductan-nguyen. Esse problema não é apenas específico sobre chaves protegidas por senha, mas também não funcionará se você precisar ter várias chaves (tenho uma para o GitHub e outra para o GitLab, por exemplo).

Algum progresso com este?

@Badbreaddead , várias soluções ou soluções alternativas foram postadas acima. Depende do sistema operacional que você está usando:

OS X

Siga a solução de @dschu-lab e adicione

Host *
   AddKeysToAgent yes
   UseKeychain yes 

até _muito end_ de ~/.ssh/config . Se sua chave ssh não tiver um nome padrão, você também pode precisar especificá-la com IdentityFile /path/to/your/ssh/private/key como outros apontaram.
Em seguida, você será solicitado a adicionar sua frase-senha na primeira vez que usá-la e ela será armazenada nas Chaves para qualquer uso subsequente.

Linux

Instale as chaves , por exemplo, através de sudo apt install keychain , como @ Silentz0r apontado acima . Ele então executa keychain --eval <ssh-key-name> , mas parece que keychain <path-to-ssh-key> tem o mesmo efeito. Adicionar ao seu .bashrc ou equivalente deve resolver.

janelas

A solução alternativa de @geordanr é a única que funcionou para mim. Execute os seguintes comandos no Git Bash para adicionar a chave ssh ao agente e executar o código na mesma sessão:

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

Se você quiser evitar a necessidade de digitar os dois primeiros comandos todas as vezes, também pode adicionar 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 

ao seu arquivo ~/.bashrc no Git Bash para iniciar o ssh-agent automaticamente (retirado daqui e ligeiramente ajustado). Se sua chave não tiver um nome padrão, você precisará especificar o caminho para ela depois de ssh-add , por exemplo, ssh-add ~/.ssh/id_rsa_personal_key .

Qual IDE realmente suporta senhas SSH? Porque os produtos da Jetbrains também não. Portanto, você tem 2 dos 3 principais fornecedores que não oferecem suporte nativo a senhas SSH (e o outro - Github - não sei se o editor Atom deles suporta senhas SSH nativamente).

Em 29 de agosto de 2019, às 20:43, Chris Migut @ . * > escreveu: Atualizado pelo código do visual studio, não posso mais interagir com meu github através do aplicativo. Versão 1.37.1 A equipe MS odeia SSH? - Você está recebendo isso porque foi mencionado. Responda a este e-mail diretamente, vê-lo no GitHub <# 13680? Email_source = notificações & email_token = ACKS4GSGFBF2OGBCXPN55LDQHB3NLA5CNFSM4CSXV3P2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD5QI7ZA # issuecomment-526421988>, ou silenciar o fio https://github.com/notifications/unsubscribe-auth/ACKS4GTHNDBY5DETIRNVX6TQHB3NLANCNFSM4CSXV3PQ .

PyCharm suporta minha chave ssh com senha sem nenhum problema, ele me pediu a senha uma vez e nunca mais e todas as funcionalidades do git funcionam conforme o esperado.

Execute os seguintes comandos no Git Bash para adicionar a chave ssh ao agente e executar o código na mesma sessão:

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

Pelo que vale a pena, isso funciona no Linux da mesma forma - e não há necessidade de iniciar code por meio do terminal. O atalho também serve. O próprio terminal pode ser fechado logo após esses comandos.

Eu conheço pelo menos outra solução alternativa:

Instale ssh-askpass (no Arch Linux isso é fornecido pelos pacotes x11-ssh-askpass e também pelo seahorse , e os binários residem em /usr/lib/ssh/ssh-askpass e /usr/lib/seahorse/ssh-askpass respectivamente). Instalar um desses pacotes é tudo o que é necessário. O VS Code abrirá a caixa de diálogo de senha sempre que for necessário.

Basta adicionar as chaves abaixo ao seu ambiente:

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

Eu poderia jurar que isso foi no marco de janeiro de 2020 . 😕

Adicionando a este https://github.com/microsoft/vscode/issues/13680#issuecomment -559013132

É que, uma vez que o bash avisa você em cada login para digitar sua senha, você pode executar o VSCode em cadeia em um atalho através do bash. Para o ícone, use apenas aquele que veio com VSCode, provavelmente em% LOCALAPPDATA% \ Programs \ Microsoft VS CodeCode.exe

Se você já tem o ssh-agent em execução, ele iniciará o código imediatamente. Caso contrário, ele esperará que você digite sua senha.

image

Eu adoraria ajudar com isso. É uma das poucas coisas que ainda gostaria que o VSCode fizesse, mas mesmo sem ele, não importa, eu ainda gosto muito de usar o VSCode, então obrigado!

Você sabia que Git-for-Windows vem com um script chamado start-ssh-agent , está na pasta cmd , que normalmente é adicionada ao caminho do usuário em uma instalação padrão do Git-for-Windows. Talvez haja alguma maneira de usar isso para resolver esse problema?

Gostaria de saber se alguém pode me apontar a cadeia de eventos que ocorre quando você clica no botão push / pull, talvez possamos tentar executar este script, possivelmente no terminal vscode ou em um pop-up.

Além disso, como uma vantagem adicional, se o usuário já tiver iniciado o ssh-agent, o script geralmente o encontrará e apenas usará o agente existente, portanto, nem mesmo uma senha é necessária.

Obrigado!

https://github.com/microsoft/vscode/issues/13680#issuecomment -525861890 também funcionou para mim, mas não é muito simples e complica as coisas se você também estiver usando Git para Windows git e bash.

O que descobri sobre o problema e um resumo das soluções possíveis

O principal problema no Windows + Git para Windows (GfW) + VSCode + SSH git repo é este:

  • Se você não iniciou o Windows ou GfW ssh-agent antes (ou não tem um auxiliar / serviço fazendo isso), ele não parece ser capaz de iniciar o ssh-agent e o ssh-add. Talvez não seja responsabilidade do VSCode, mas é bom saber ou ser avisado que o ssh não está rodando.
  • Se você lançou o agente ssh GfW por meio de um .bashrc, e se você iniciar o VSCode no menu Iniciar / atalho e não na mesma sessão (como executar code no cli), então o VSCode não obterá acesso ao agente ssh GfW também.
  • Se você lançou a versão Windows do ssh-agent e tem o GfW instalado, o GfW git não usa a versão Windows do ssh-agent por padrão, pois também vem com sua própria versão das ferramentas ssh. O VSCode parece usar o git GfW quando disponível, então pode ser por isso que ele não detecta que o agente ssh do Windows já está em execução (com as chaves adicionadas) e usa-o.

A solução 2 é boa, mas também não é muito direta. Estas são as etapas que executei:

  1. Instale o cliente OpenSSH em recursos opcionais
  2. Adicione GIT_SSH em Variáveis ​​de ambiente, apontando para as ferramentas OpenSSH Client, provavelmente C: \ Windows \ System32 \ OpenSSHssh.exe
  3. Mude o agente Open SSH em Serviços para Automático (se estiver desativado, o meu estava)
  4. Execute ssh-add no PowerShell e você verá sua chave adicionada
  5. VSCode agora deve ser capaz de fazer coisas git com o repositório SSH
  6. No entanto, GfW git e bash não usam este agente (eu tentei apontar o env GIT_SSH do bash para as ferramentas OpenSSH do Windows, mas eles se recusam a trabalhar juntos), e então você tem que usar o script .bashrc para iniciar o agente e inserir a senha outra vez, ao iniciar o bash GfW.

Por enquanto, estou me fixando na Solução 1, já que também uso sistemas Mac e Linux e é bom ter as mesmas ferramentas bash / git / ssh em todos os lugares.

Eu tentei encadear o script Git-for-Windows chamado start-ssh-agent.cmd na pasta cmd, com Code.exe no atalho como %COMSPEC% /C %LOCALAPPDATA%\Programs\Git\cmd\start-ssh-agent.cmd && "%LOCALAPPDATA%\Programs\Microsoft VS Code\Code.exe" e funciona, mas tem um lado estranho efeito de abrir uma segunda instância do VSCode após sair da primeira instância, mas não sei por quê.

Se eu executar esta linha a partir do terminal Windows (com ou sem o %COMSPEC% /C ), ela funcionará perfeitamente.

Outra coisa que tentei foi criar um arquivo *.bat ou *.cmd com o mesmo comando do atalho, mas fiquei surpreso ao ver que não funcionou. O VSCode inicia, mas não consegue puxar / empurrar, e responde com a temida "permissão negada (chave pública)". erro.

Eu também passei algum tempo procurando na base de código de extensão Git, mas não consegui descobrir onde inserir o script ssh-start-agent, idealmente quando ele está procurando a versão do Git e descobre que está no Windows, como nas linhas 61-148 em git.ts uma vez que executa git --version , também pode executar cp.exec('start-ssh-agent.cmd') mas deve haver uma maneira de obter a senha do usuário.

Finalmente, decidi copiar start-ssh-agent.cmd em um novo arquivo chamado vscode-ssh-agent.cmd e substituir a última linha onde chama CMD por <strong i="25">@call</strong> "%LOCALAPPDATA%\Programs\Microsoft VS Code\Code.exe" . Mas não consigo fixá-lo na barra de tarefas.

Atualmente, estou tentando implementar esse recurso. Ainda é um trabalho em andamento, mas devo ter um PR disponível em breve.

Por enquanto, eu inicio um agente ssh, adiciono a chave do usuário se git.sshPrivateKeyPath estiver definido, solicito ao usuário a senha da chave SSH se solicitada e uso as variáveis ​​de ambiente do agente para cada chamada git.
Meus primeiros testes em uma máquina Windows parecem funcionar.

Eu li todos os comentários aqui, mas posso ter esquecido algo, então sinta-se à vontade para fazer qualquer comentário.

Adicionando a https://github.com/microsoft/vscode/issues/13680#issuecomment -583599355 de @weiliddat; Eu mesmo uso frequentemente a entrada do menu de contexto "Abrir com VSCode" (clique com o botão direito na pasta) e usei o ContextEdit para editar uma entrada do menu de contexto ao abrir pastas com VSCode para iniciá-lo via Git Bash, para que o VSCode tenha acesso ao contexto SSH.

  1. Instale o ContextEdit .
  2. Execute ContextEdit como administrador
  3. Encontre "Pasta de arquivo" na longa lista de extensões.
    image
  4. Clique duas vezes na entrada "Abrir com o código" em "Comandos Shell"
  5. Altere a string "Linha de comando" para "C:\Program Files\Git\bin\bash.exe" -l -c "code '%V';exit" . Certifique-se de que "C:\Program Files\Git\" corresponda ao seu diretório de instalação do Git para Windows. Você pode querer copiar o comando antigo caso precise reiniciá-lo.
  6. Clique em "OK" e "Sair"

Agora, se você clicar com o botão direito em uma pasta para "Abrir com VSCode", isso deve primeiro iniciar o Git Bash, e depois abrir o VSCode na pasta certa. Se você configurar corretamente Git Bash para lançar o seu SSH Agent antes de iniciar Git Bash , este deve pedir-lhe para digitar a senha uma vez a cada vez que você reiniciar o computador. Na abertura subsequente, isso deve abrir diretamente o VSCode e ter sua chave SSH configurada.

Não consegui encontrar a entrada ContextEdit ao clicar com o botão direito dentro de uma pasta no Explorer, em vez de clicar diretamente com o botão direito na própria pasta.

Esta solução funciona perfeitamente.

Basta adicionar as chaves abaixo ao seu ambiente:

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

Basta adicionar as chaves abaixo ao seu ambiente:

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

https://github.com/microsoft/vscode/issues/13680#issuecomment -575204695
Isso resolve tudo! Muito obrigado!

Por favor, verifique esta seção . Resumindo, ele diz que você precisa iniciar VSCode de GitBash ou algo semelhante para ter as variáveis ​​de ambiente necessárias. Além disso, se você tivesse verificado essas variáveis ​​em GitBash poderia obter algo assim:
.

Por exemplo, se você não quiser usar GitBash para iniciar VSCode todas as vezes ( porque isso é absurdo! IMHO ), é possível adicioná-los usando Environment Variables window ou usando um comando rundll32.exe sysdm.cpl,EditEnvironmentVariables (ou seja, por meio de cmd.exe).

No resultado, pode ser assim:

Agora, basta reiniciar (não recarregar) VSCode e deve funcionar:

Engraçado que funciona mesmo se DISPLAY=WTHeck , então, ele pode procurar apenas a existência desta variável.

Por que não simplesmente definir estes ( private key file path ou SSH_ASKPASS ) como um valor de configuração JSON algum lugar como uma solução alternativa, para que VSCode os anexasse na inicialização suas variáveis ​​de ambiente interno?

Não estou muito familiarizado com o funcionamento dos aplicativos do elétron ou do Windows, mas seria possível desenvolver um invólucro em torno dessa solução de forma que, quando o VSCode for instalado, ele defina automaticamente essas configurações.

TBH para mim, isso não parece ser um problema tão difícil de resolver, mas considerando como essa discussão continuou por 4 anos, é provavelmente um problema terrível. Seria legal ver o VSCode implementar pelo menos algo para que os usuários pudessem usar esse recurso padrão do git sem ter que fazer suas próprias soluções alternativas. Embora eu veja um ponto a ser feito ao implementá-lo corretamente na primeira vez.

Obrigado soufiene-slimi por sua solução alternativa e obrigado F8ER pelo esclarecimento. Embora haja uma inconsistência da IU, pelo menos funciona

Basta adicionar as chaves abaixo ao seu ambiente:

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

Alguma novidade aqui? Acabei de começar a trabalhar com VSCode no WSL 2 e Git. E porque o VSCode congela toda vez que eu tento enviar ou publicar algo, eu tentei no terminal e funcionou muito bem porque lá eu tive a possibilidade de inserir minha senha.

Este assunto é tão antigo e tem muitos comentários. Talvez algum lugar seja uma boa solução alternativa sem remover a senha longa da minha chave e sem salvar a chave em algum lugar das configurações.

Ei pessoal,

Também encontrei esse problema no meu Mac.
Eu tenho uma chave RSA configurada e minha configuração é assim

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

A coisa é do terminal de código VS, quando eu empurro para a origem com CLI, ele empurra meu código com sucesso com um prompt para inserir uma senha.
O problema surge quando eu uso o VScode GUI pull / push / sync que me dá

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.

a única diferença é que a GUI não solicita uma senha, e é por isso que estou assumindo que está falhando.

[email protected] : Permissão negada (publickey).
...
a única diferença é que a GUI não solicita uma senha, e é por isso que estou assumindo que está falhando.

@mohammedpatla Por favor, verifique isto .

Essa solução com variáveis ​​de ambiente não me ajuda. Não tenho git instalado no Windows, mas sim no Ubuntu 20.04 rodando no WSL2. Em nenhum lugar existe um diretório chamado mingw64 ou um binário chamado git-gui--askpass .

Portanto, também acho que a solução também não está funcionando em um Mac, @ F8ER .

Não consigo executar VScode por meio de git-bash em um Mac @ F8ER

Essa solução com variáveis ​​de ambiente não me ajuda. Não tenho git instalado no Windows, mas sim no Ubuntu 20.04 rodando no WSL2. Em nenhum lugar existe um diretório chamado mingw64 ou um binário chamado git-gui--askpass .

Não consigo executar VScode por meio de git-bash em um Mac

Você sabe o que é Environment Variable ?
@NicolasGoeddel Você pode querer verificar este link de ubuntu.com .
@mohammedpatla Você pode link da apple.com .

Além disso. por favor, experimente o Google primeiro . Por exemplo, a ausência de git-gui--askpass pode significar que não há pacote git-gui instalado, portanto, você pode precisar dele instalado.

Essa solução com variáveis ​​de ambiente não me ajuda. Não tenho git instalado no Windows, mas sim no Ubuntu 20.04 rodando no WSL2. Em nenhum lugar existe um diretório chamado mingw64 ou um binário chamado git-gui--askpass .

Não consigo executar VScode por meio de git-bash em um Mac

Você sabe o que é Environment Variable ?
@NicolasGoeddel Você pode querer verificar este link de ubuntu.com .
@mohammedpatla Você pode link da apple.com .

Além disso. por favor, experimente o Google primeiro . Por exemplo, a ausência de git-gui--askpas pode significar que não há pacote git-gui instalado.

Claro que sei o que são variáveis ​​de ambiente. Mas por que devo instalar um aplicativo GUI em uma máquina Linux rodando em WSL2 quando não é possível executar essa GUI? Simplesmente não é possível em uma máquina sem cabeça. Por favor, leia minhas postagens com mais atenção da próxima vez.

Esse truque de git-gui simplesmente não é a solução alternativa certa no meu cenário. Mas talvez funcione no Mac se o VSCode e o repositório forem executados nativamente no mesmo ambiente. Então @mohammedpatla só precisa instalar git-gui em seu sistema e precisa alterar as variáveis ​​de ambiente.

Claro que sei o que são variáveis ​​de ambiente. Mas por que devo instalar um aplicativo GUI em uma máquina Linux rodando em WSL2 quando não é possível executar essa GUI? Simplesmente não é possível em uma máquina sem cabeça.
Esse truque git-gui simplesmente não é a solução alternativa certa no meu cenário.

Por que você está tentando executar o VSCode em uma máquina não-gui ou estou faltando alguma coisa?
Além disso, você pode querer dar uma olhada neste .

Funciona bem para mim no meu Mac, não importa como eu inicio o vscode, mas eu tenho o ssh-agent ativado e conectado ao meu keychain de credencial para que ele inicie automaticamente.

Não tentei puxar / empurrar do WSL, mas uso a conexão remota de vacina. Sou capaz de executar aplicativos individuais do WSL usando VcXsrv, mas isso é irrelevante.

O ssh-agent foi iniciado em seu WSL? Inicie seu terminal WSL e veja .bashrc ou .bash_prifile , se eles existirem em sua pasta pessoal. Em seguida, adicione:

eval `ssh-agent`
ssh-add

Talvez isso ajude, mas talvez não. Ao usar o wsl, descobri que algumas coisas simplesmente não funcionam. Mantenha seu terminal aberto e sincronize seus repositórios obtidos manualmente

Acho que isso está indo longe demais, não é? Já temos soluções alternativas. A solução adequada seria o VS Code solicitar a senha nativamente, da mesma maneira que já faz para o nome de usuário / senha normal.

/ cc @ alarr46 , o que você diz?

Claro que sei o que são variáveis ​​de ambiente. Mas por que devo instalar um aplicativo GUI em uma máquina Linux rodando em WSL2 quando não é possível executar essa GUI? Simplesmente não é possível em uma máquina sem cabeça.
Esse truque git-gui simplesmente não é a solução alternativa certa no meu cenário.

Por que você está tentando executar o VSCode em uma máquina não-gui ou estou faltando alguma coisa?
Além disso, você pode querer dar uma olhada neste .
Você me entendeu mal. O VSCode está rodando no Windows e o aplicativo e suas fontes que desenvolvo estão rodando no WSL 2.
Mas obrigado pelo seu link. Eu não sabia sobre o compartilhamento de credenciais Git entre Windows e WSL. Vou testar isso.

Por outro lado, @ranolfi está certo. Tudo isso ainda são soluções alternativas. Seria melhor corrigir todo o problema. :-)

Sim, desejo que isso seja implementado no VSCode nativamente também. Uma sugestão seria muito apreciada.

Basta adicionar as chaves abaixo ao seu ambiente:

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

antes de se perguntar se deve ou não haver um espaço antes dos traços duplos, não deve haver. parece que deveria ser um parâmetro, mas acredito que na verdade é um nome de arquivo ... sem espaço

Basta adicionar as chaves abaixo ao seu ambiente:

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

antes de se perguntar se deve ou não haver um espaço antes dos traços duplos, não deve haver. parece que deveria ser um parâmetro, mas acredito que na verdade é um nome de arquivo ... sem espaço

Acho que isso está indo longe demais, não é? Já temos soluções alternativas. A solução adequada seria o VS Code solicitar a senha nativamente, da mesma maneira que já faz para o nome de usuário / senha normal.

/ cc @ alarr46 , o que você diz?

Só vou esperar pelo lançamento oficial, só vou usar Git-CLI até então.

Acho que isso está indo longe demais, não é? Já temos soluções alternativas. A solução adequada seria o VS Code solicitar a senha nativamente, da mesma maneira que já faz para o nome de usuário / senha normal.

/ cc @ alarr46 , o que você diz?

Eu concordo, isso é o que implementei nesta solicitação de pull . Ainda precisa ser revisto.

Eu concordo, isso é o que implementei nesta solicitação de pull . Ainda precisa ser revisto.

Muito bom começo, entretanto. Muito obrigado! Foguete.

Esta página foi útil?
0 / 5 - 0 avaliações