Acabei de começar a usar o git e não consigo lembrar a minha senha. Estou usando o cmd.exe elevado e meu host do git é o github, e criei uma chave ssh como essa no github
mas eu ainda entendo
*\subnus.mvc>git push origin master
Enter passphrase for key '/c/Users/Subnus/.ssh/id_rsa':
GIT_SSH
em seu ambiente (se necessário) e o git / ssh lembrará sua senha através do ssh-agent. Veja minha resposta abaixo para obter instruções mais detalhadas.Respostas:
Percebo que essa pergunta está chegando aos dois anos de idade, mas eu tive o mesmo problema e várias respostas aqui não responderam completamente a pergunta para mim. Aqui estão duas soluções passo a passo, dependendo se você usa o TortoiseGit além do msysgit ou não.
Primeira solução Supõe Windows, msysgit e PuTTY.
Acesse a caixa de diálogo de variáveis de ambiente do Windows (clique com o botão direito do mouse em "Computador", clique em "Propriedades", clique em "Configurações avançadas do sistema" ou na guia "Avançado", clique em "Variáveis de ambiente"). Adicione a seguinte variável de ambiente:
GIT_SSH = C: \ caminho completo \ para \ plink.exe
Substitua "C: \ full \ path \ to" pelo caminho de instalação completo para PuTTY, onde o plink.exe é encontrado. Provavelmente é melhor adicioná-lo à seção "Variáveis do usuário". Além disso, verifique se o caminho usado para plink.exe corresponde ao caminho usado para o Pageant (pageant.exe). Em alguns casos, você pode ter várias instalações do PuTTY porque ele pode ser instalado junto com outros aplicativos. O uso do plink.exe de uma instalação e o pageant.exe de outra provavelmente causarão problemas.
Abra um prompt de comando.
Se você está tentando se conectar a um repositório git hospedado no Github.com, execute o seguinte comando:
plink.exe [email protected]
Se o repositório git ao qual você está tentando se conectar estiver hospedado em outro lugar, substitua [email protected] por um nome de usuário e URL apropriados. (Assumindo o Github) Você deve ser informado de que a chave do host do servidor não está armazenada em cache e perguntada se você confia nela. Responda com um y . Isso adicionará a chave de host do servidor à lista de hosts conhecidos do PuTTY. Sem esta etapa, os comandos git não funcionarão corretamente. Depois de pressionar Enter, o Github informa que o Github não fornece acesso ao shell. Tudo bem ... não precisamos disso. (Se você estiver se conectando a outro host, e isso lhe der acesso ao shell, provavelmente é melhor encerrar o link sem fazer mais nada.)
Segunda solução Supõe Windows, msysgit e TortoiseGit.
O TortoiseGit vem com executáveis PuTTY e uma versão especialmente modificada do plink (chamada TortoisePlink.exe) que facilitará as coisas.
Acesse a caixa de diálogo de variáveis de ambiente do Windows (clique com o botão direito do mouse em "Computador", clique em "Propriedades", clique em "Configurações avançadas do sistema" ou na guia "Avançado", clique em "Variáveis de ambiente"). Adicione a seguinte variável de ambiente:
GIT_SSH = C: \ caminho completo \ to \ TortoisePlink.exe
Substitua "C: \ full \ path \ to" pelo caminho completo de instalação do TortoiseGit, onde o TortoisePlink.exe está localizado. Provavelmente é melhor adicioná-lo à seção "Variáveis do usuário". Além disso, verifique se o caminho usado para o TortoisePlink.exe corresponde ao caminho usado para o Pageant (pageant.exe). Em alguns casos, você pode ter várias instalações do PuTTY porque ele pode ser instalado junto com outros aplicativos. O uso do TortoisePlink.exe da instalação do TortoiseGit e do pageant.exe de outra instalação de um aplicativo diferente (ou de uma instalação independente do PuTTY) provavelmente causará problemas.
Tudo feito! Os comandos Git agora devem funcionar na linha de comando. Na primeira vez que você tentar se conectar ao seu repositório git, provavelmente será informado que a chave do host do servidor não está armazenada em cache e perguntará se você confia no servidor. Clique em "Sim". (Este é o TortoisePlink.exe em ação.)
Convém que o pageant.exe carregue o arquivo .ppk automaticamente no momento da inicialização , dependendo da frequência com que você precisará dele.
Terceira solução Assume janela, msysgit e prompt de comando nativo.
start-ssh-agent
fonte
start-ssh-agent
na linha de comando para que ele salve sua senha SSH.Toda vez que configuro uma nova área de trabalho, esqueço essas instruções, por isso estou adicionando outra resposta aqui, pois tropeço nela com a mesma frequência!
Etapas rápidas para usuários impacientes como eu
OpenSSH Authentication Agent
serviço e faça com que ele inicie automaticamente.ssh-add
na linha de comando.$ENV:GIT_SSH=C:\Windows\System32\OpenSSH\ssh.exe
à sua sessão ou permanentemente ao seu ambiente de usuário.Etapas detalhadas: visão geral
O Windows já vem com o OpenSSH há algum tempo. Ele inclui todos os bits necessários para o ssh funcionar junto com o Git, mas ainda parece precisar de algum TLC antes de funcionar 100% sem problemas. Aqui estão as etapas que eu tenho seguido com êxito a partir da versão 10.0.18362.449 do Windows (você pode ver sua versão do Windows 10 abrindo um shell cmd.exe e digitando
ver
).Presumo aqui que você já tenha sua chave SSH configurada e esteja localizado em
~/.ssh/id_rsa
Ative o serviço ssh-agent na sua caixa do Windows 10.
OpenSSH Authentication Agent
serviço na lista.OpenSSH Authentication Agent
serviço e escolha 'Propriedades'.Startup type:
paraAutomatic
.Start
botão para alterar o status do serviçoRunning
.OK
e feche o aplicativo Serviços.Adicione sua chave ao
ssh-agent
ssh-agent
:ssh-add
(você pode adicionar o caminho à sua chave como o primeiro argumento, se for diferente do padrão) .Experimente o Git + SSH
git clone [email protected]:octocat/Spoon-Knife
Defina sua
GIT_SSH
variável de ambienteEm qualquer sessão, você pode simplesmente definir essa variável de ambiente e o prompt da sua senha passará a aparecer e o ssh usará isso
ssh-agent
em seu nome. Como alternativa, você pode definir sua frase secreta no ambiente do usuário permanentemente.Para definir apenas
GIT_SSH
no shell atual:ssh.exe
:$Env:GIT_SSH=$((Get-Command -Name ssh).Source)
Para definir
GIT_SSH
permanentementeVariable name:
campo como GIT_SSHVariable value:
campo como path-to-ssh.exe (normalmenteC:\Windows\System32\OpenSSH\ssh.exe
).Observe que isso provavelmente vai mudar com novas etapas / procedimentos à medida que o Windows 10 avança e à medida que eu aprendo mais. Vou tentar manter isso atualizado, estou ansioso para receber comentários nos comentários.
fonte
Para quem precisar de instruções mais detalhadas, consulte esta página: http://help.github.com/working-with-key-passphrases/
fonte
msysgit
shell.notepad ~/.profile
e cópia colado o conteúdo desse link, reiniciado o Git Bash, entrou na minha senha, lucrou ...Caso esteja usando o Git bash no Windows, você pode executar o seguinte:
ele solicitará a frase secreta no segundo comando, e é isso. Cada ação adicional que você precisará executar (que exigia uma frase secreta) não solicitará a frase secreta (veja um exemplo na captura de tela abaixo):
fonte
Uma solução extra 5 anos, 8 meses e 6 dias após a postagem da pergunta não seria uma má idéia, então aqui vai.
NOTA: Supõe que você esteja usando um computador Windows.
PATH
variável de ambiente, ele deverá funcionar. Se não, corragit-credential-winstore -i C:\Path\To\Git.exe
.Na próxima vez que você tentar se comprometer com um repositório, você será solicitado a inserir suas credenciais. Deve ser isso. Você não precisará mais de suas credenciais até alterar sua senha.
Apenas para seu conhecimento ... Suas credenciais são armazenadas no Windows Credential Store
fonte
Se você definir uma senha para o seu arquivo de chave, sempre precisará digitar essa senha ao se conectar. Se você criar uma chave sem senha, não precisará digitá-la toda vez; no entanto, qualquer pessoa com acesso ao seu arquivo de chave poderá se conectar à sua conta do github.
O ssh-agent também pode funcionar. Tente executar isso e veja se ele se lembrará da sua senha.
fonte
ssh-keygen -p
deve permitir que o OP não defina a senha[editar - interpretou mal a pergunta, esta é uma resposta para um problema relacionado. deixando a versão reformulada para a posteridade]
Meu caso foi que eu estava tentando enviar para um repositório que estava hospedado em um de nossos servidores. Sempre que eu tentava fazer um push, o git solicitava minha senha (nb - senha, não a senha da minha chave privada).
Ao adicionar minha chave pública às chaves autorizadas no servidor, eu consegui obter notificações sem senha para esse servidor. E, como não havia senha na minha chave privada (o que é uma prática recomendada!), Eu não precisava digitar nada.
Aqui está o comando para adicionar sua chave pública a um servidor. Ele assume que o usuário
git
é o usuário no servidor.Você pode conseguir o mesmo fazendo logon no servidor e anexando manualmente sua chave pública ao arquivo em
~/.ssh/authorized_keys
fonte
Percebo que isso está atrasado há vários anos, mas me deparei com essa pergunta, tentando encontrar uma solução para ela, e encontrei algo que se adapta a todos os níveis de conhecimento, então pensei em compartilhar.
O GitHub fornece um instalador muito útil que facilita e facilita tudo: https://help.github.com/articles/caching-your-github-password-in-git/
fonte
Vamos supor que você gostaria de usar uma solução apenas para Git Bash pura sem usar TortoiseGit ou PuTTY. Além disso, você não deseja armazenar suas frases-senha permanentemente, pois é quase o mesmo como se você tivesse gerado sua chave SSH sem uma frase-senha em primeiro lugar. Mas você ainda deseja usar algum cache.
Para fins de armazenamento em cache,
ssh-agent
é usado o processo, incluído na distribuição do Git Bash. Como esse processo não é iniciado por padrão, ele precisa ser iniciado primeiro. Para que quaisquer chaves SSH sejam armazenadas em cache, elas devem ser adicionadas a esse processo com ossh-add
comando que solicitará a senha da chave e a armazenará na memória.Desvantagens de outras soluções:
ssh-agent
como no artigo do GitHub, pede uma senha desde o início quando você inicia o Git Bash, independentemente de você precisar usar sua chave SSH nesta sessão ou não. Se você estiver trabalhando com seu repo local hoje, provavelmente fornecerá uma senha apenas quando realmente necessário (por exemplo, ao interagir com um repo remoto).ssh-agent
like no artigo do GitLab,eval $(ssh-agent -s)
provavelmente está cansado de digitar isso toda vez. Provavelmente, você adicionou essas duas linhas à sua.bashrc
configuração para iniciar automaticamente. As desvantagens são as mesmas acima e mais uma: cada vez que você inicia um novo terminal Git Bash, recebe um processo extra do ssh-agent (o script bash do GitHub verifica se esse processo já foi iniciado).Portanto, esta solução é para quem quer saber como fazer o Git Bash solicitar uma senha apenas uma vez por sessão do Windows e somente quando realmente necessário. Assemelha-se ao comportamento do gerenciamento de senhas com o GnuPG confirma a assinatura automática usando
default-cache-ttl
.Configurando o SSH para solicitar senhas uma vez, quando necessário, usando apenas o Git Bash
Primeiro, queremos iniciar automaticamente o arquivo
ssh-agent
ao iniciar um shell do Git Bash. Usaremos um script modificado do GitHub para isso, pois ele verifica se o processo já foi iniciado, mas não queremos que ele use asssh-add
chaves imediatamente. Este script vai para o seu~/.bashrc
ou~/.profile
ou~/.bash_profile
(~
é como o diretório inicial do usuárioC:\Users\Username
- executecd ~
e,pwd
em seguida, para o Git Bash imprimi-lo):Agora edite ou crie um
~/.ssh/config
arquivo e adicione umaAddKeysToAgent
opção para cada sub-rotina do host em que você deseja ativar o cache (você também pode ativá-lo globalmente, colocando a diretiva no início do arquivo antes de todas as declarações do host):A vida útil máxima padrão é para sempre ou até que o
ssh-agent
processo seja interrompido (manualmente no gerenciador de tarefas ou quando o PC for desligado). Se você deseja usar um tempo limite finito, pode configurá-lo com o-t
parâmetro ssh-agent . Altere a linha no script bash da primeira etapa acima, por exemplo, por 30 minutos de duração do cache de chaves:Veja aqui para outros qualificadores de formato de hora.
fonte
Você pode criar um
.bashrc
arquivo no diretório inicial do seu usuárioC:/Users/youruser
e colocar lá:Este script é executado sempre que o bash é executado. Então, você precisará digitar a senha apenas uma vez, quando
git-bash
for iniciado!Algumas versões do bash requerem
.bash_profile
arquivo.bashrc
, portanto, apenas no caso de clone.bashrc
:fonte
pode tentar adicionar -k arg quando o fizer;
fonte