Chave SSH - Ainda solicitando senha e senha

495

Eu tenho um pouco de 'tolerância' com o Github sempre pedindo meu nome de usuário e senha quando clono um repositório. Quero ignorar esta etapa porque é um aborrecimento no meu fluxo de trabalho.

Tentei configurar uma chave SSH (o que fiz com sucesso) usando este guia. https://help.github.com/articles/generating-ssh-keys e fui bem-sucedido.

Meu problema é que ainda me pedem minha senha e senha do github ao clonar um repositório (usando SSH). Meu entendimento era que, depois de configurar essa chave SSH, não precisaria mais fazer isso.

Estou um pouco inseguro sobre o que perguntar, por isso vou declarar meu objetivo.

Quero poder clonar repositórios sem precisar colocar minhas informações do Github o tempo todo .

O que estou perdendo com minha chave SSH? Se alguém puder fornecer alguma orientação ou recursos, eu apreciaria, porque sempre me senti um pouco perdido no que diz respeito à autenticação SSH no GitHub.

Pelo meu conhecimento, este é um comando que testa se as coisas estão funcionando corretamente, eis a saída do meu console:

~ $ ssh -T [email protected]
Saving password to keychain failed
Enter passphrase for key '/Users/MYNAME/.ssh/id_rsa':
Hi MYNAME! You've successfully authenticated, but GitHub does not provide shell access.

Quando insiro minha senha, ela deve falhar primeiro? Então, quando digito minha senha, ela passa.

Olá Mundo
fonte
1
Em qual sistema operacional você está? Um desktop Linux moderno proporia armazenar sua senha em um gerenciador de chaves. O mesmo no Mac OS X. No Windows, você pode usar o pageantque faz parte putty. Em tudo isso, o objetivo é o mesmo: você digita a senha apenas uma vez depois de iniciar o PC, os agentes do gerenciador de chaves a transmitem ao ssh nos usos subseqüentes até a reinicialização.
janos 13/01
A duplicação do push
2
Estou um pouco atrasado para a festa aqui, mas na pequena guia / botão clone no github há um link que diz "Usar SSH". Você quer fazer isso. Ele muda o link do seu clone para algo como "git @ github: nome de usuário / projeto.git". Se você adicionou uma chave SSH ao github e a executa no local ssh-agent localmente, você poderá pressionar sem inserir um nome de usuário ou senha.
Logan Kitchen

Respostas:

201

Se você trabalha com HTTPsURLs, ele sempre solicita seu nome de usuário / senha.

Se você estiver usando corretamente SSHao clonar / configurar controles remotos. Depois, verifique se você tem um agente ssh para lembrar sua senha. Dessa forma, você digitará sua senha apenas uma vez por sessão do terminal.

Se ainda for muito irritante, basta definir uma tecla ssh sem senha.

Simon Boudrias
fonte
2
Obrigado pela resposta. Eu sempre usei HTTPs. Estou tentando obter autenticação SSH e pensei em configurá-la. O ssh-agent é algo fora do git que eu preciso instalar? Obrigado
HelloWorld
1
@ R11G você não pode, senão as senhas não seriam seguras ... Apenas gere uma nova.
Simon Boudrias
50
Eu só quero observar que as frases secretas são usadas para criptografar sua chave privada; portanto , se você não usar uma frase secreta, sua chave privada não será criptografada em sua máquina. É como deixar uma senha em um arquivo de texto no seu computador.
2
Engraçado, meus repositórios HTTPS nunca solicitam senhas e meus repositórios SSH sempre solicitam.
18717 Adam
33
Consulte este documento do github para converter o URL do controle remoto de https para ssh. Para verificar se o URL do controle remoto é ssh ou https, use git remote -v. Para mudar de https para ssh:git remote set-url origin [email protected]:USERNAME/REPOSITORY.git
Manavalan Gajapathy
825

Adicionar identidade sem chaveiro

Pode haver momentos em que você não deseja que a senha seja armazenada no chaveiro, mas não precisa digitar a senha repetidamente.

Você pode fazer isso assim:

ssh-add ~/.ssh/id_rsa 

Isso solicitará a senha, digite-a e não solicitará novamente até que você reinicie.

Adicionar identidade usando chaveiro

Como o @dennis aponta nos comentários, para persistir a senha através de reinicializações, armazenando-a no seu chaveiro, você pode usar a -Kopção ( -kpara Ubuntu) ao adicionar a identidade desta forma:

ssh-add -K ~/.ssh/id_rsa

Mais uma vez, isso solicitará a senha, digite-a e, desta vez, nunca mais solicitará essa identidade.

Komu
fonte
178
Observe que isso não persistirá na identidade ao reiniciar. Você pode usar a -Kopção para armazenar a senha no seu chaveiro ao adicioná-lo, por exemplo:ssh-add -K ~/.ssh/id_rsa
Dennis
29
minúsculas -kpara mim ... (Linux Mint / Ubuntu 14.04 base) mas sim! finalmente resolvi isso ...
Louis Maddox
8
apenas executando o comando "ssh-add" e digite a senha uma vez, a linha de comando não solicitará a senha novamente.
AVINASH SHRIMALI
14
Você não precisa de argumentos; apenas a execução ssh-addadicionará automaticamente ~/.ssh/id_rsa(entre outros arquivos). E não há motivo para enviar a saída /dev/null; muito melhor ver o relatório do que ele fez.
Ted Hopp
6
Alguma idéia de por que eu recebo "Não foi possível abrir uma conexão com o seu agente de autenticação."?
Dokaspar 18/09
252

No Mac OSX, você pode adicionar sua chave privada ao chaveiro usando o comando:

ssh-add -K /path/to/private_key

Se sua chave privada estiver armazenada em ~ / .ssh e tiver o nome id_rsa:

ssh-add -K ~/.ssh/id_rsa

Você será solicitado a fornecer sua senha, que será armazenada em seu chaveiro.

Editar - Lidar com reinicialização

Para não precisar digitar sua senha mesmo após uma reinicialização, adicione o seguinte ao seu arquivo de configuração ssh (geralmente localizado em ~ / .ssh / config)

Host *
  UseKeychain yes
  AddKeysToAgent yes
  IdentityFile ~/.ssh/id_rsa
Groot
fonte
7
No meu caso, ainda está solicitando a senha após a reinicialização (macOS Sierrra 10.12.2). Todas as ideias sobre como resolver isso?
inigo333
9
Deixa pra lá, acabei de encontrar o problema. É um bug (recurso?) Do Mac OS X 10.12 no qual o ssh-agent não carrega automaticamente senhas no chaveiro durante a inicialização. github.com/lionheart/openradar-mirror/issues/15361
inigo333
2
@ inigo333 interessante. Acabei de atualizar e notei isso sozinho!
Groot
1
@Groot, BTW, adicionar "Host * UseKeychain yes" a "~ / .ssh / config", conforme sugerido em outras respostas, corrige o problema.
Inigo333
1
Essa deve ser a resposta aceita. Especialmente o arquivo de configuração em~/.ssh
Xavi
186

Eu tentei todas as respostas aqui e nenhuma dessas respostas funcionou ! Minha senha não persistiria entre as sessões / reinicializações do meu Mac.

O que descobri ao ler este OpenRadar e essa discussão no Twitter foi que a Apple propositalmente alterou o comportamento do ssh-agent no macOS 10.12 Sierra para não carregar mais automaticamente as chaves SSH anteriores. Para manter o mesmo comportamento que El Cap, fiz o seguinte:

  1. ssh-add -K ~/.ssh/id_rsa
    Nota: altere o caminho para onde sua chave id_rsa está localizada.
  2. ssh-add -A
  3. Crie (ou edite, se existir) o seguinte ~/.ssh/configarquivo:

    Host *
      UseKeychain yes
      AddKeysToAgent yes
      IdentityFile ~/.ssh/id_rsa
    

E agora minha senha é lembrada entre as reinicializações do meu Mac!

ChrisJF
fonte
2
Isso pode ser útil para adicionar às páginas de documentação do github ou osx . Tive dificuldade para descobrir por que meu Mac rodando 10.11 e meu outro rodando 10.12 estavam se comportando de maneira diferente.
Grr
5
Me aconteceu depois de uma atualização OSX, graças (acho que ssh-add -Anão é necessário se você tem apenas uma chave de ~/.ssh/id_rsa)
Dorian
1
Esta é uma resposta incrivelmente útil. Obrigado, você fez o meu dia.
Jan Nash
2
Desde outubro de 2017, esta resposta é exatamente o que você está procurando se estiver usando o macOS 10.12 ou superior.
Brogrammer
3
E isso agora está nos documentos do github: help.github.com/articles/…
Todd Price
35

Você pode remover a senha da chave

$ ssh-keygen -p [-P old_passphrase] [-N new_passphrase] [-f keyfile]

ou você pode correr

$ ssh-keygen -p

você recebe um prompt para o arquivo de chave. Por padrão, ~/.ssh/id_rsapressione Enter

Você será solicitado a inserir a senha atual.

Em seguida, será solicitado um novo código de acesso, pressione enter

sudo bangbang
fonte
Isso deve ser maior do que muitas respostas quase idênticas para adicionar a frase secreta ao chaveiro. Eu tive que dar minha chave pública a um administrador e incluí uma frase secreta que ficava chata de digitar toda vez. Esta é uma solução limpa quando você não tem muito controle sobre sua máquina ( -K, -k, -Anão funcionou para mim).
Gwg #
1
Esta é a única coisa que funcionou para mim nas reinicializações, todos os comandos ssh-add -K, -k etc. não fizeram nada por mim.
Amalgovinus
28

Basta executar o seguinte comando:

ssh-add -K

Nunca solicitará que você digite a senha novamente.

user3640130
fonte
3
Isso funciona muito bem, mas eu estava um pouco preocupado em executar um comando aleatório. No entanto, se você verificar os documentos, ssh-addapenas "adiciona identidades de chave privada ao agente de autenticação" e a -Kopção simplesmente o faz "Ao adicionar identidades, cada frase secreta também será armazenada nas chaves do usuário".
Machineghost
8
Na verdade, ele só foi corrigido até eu reiniciar :(
machineghost 23/02
5
no shell bash para Windows, o sinalizador "-k" deve estar em minúsculas. Apenas FYI
Fergus
27

Certifique-se de usar o ssh para seu repositório também

mahtab@mahtab-Lenovo-G50-70:~/my-projects/jenkins-cje-2017$ git remote -v origin [email protected]:eMahtab/jenkins-cje-2017.git (fetch) origin [email protected]:eMahtab/jenkins-cje-2017.git (push)

insira a descrição da imagem aqui

Não use https, se o seu controle remoto estiver usando https, ele continuará pedindo a senha, mesmo que você tenha adicionado a chave pública ao Github e a chave privada ao ssh-agent. Abaixo sempre será solicitada a senha

mahtab@mahtab-Lenovo-G50-70:~/my-projects/jenkins-cje-2017$ git remote -v origin https://github.com/eMahtab/jenkins-cje-2017.git (fetch) origin https://github.com/eMahtab/jenkins-cje-2017.git (push)

Mahtab Alam
fonte
Sim, a diferenciação entre os dois tipos de URL remotos foi útil para mim. Isso me ajudou em termos de git pulle git push. Troquei meu URL do tipo HTTPS para SSH, e funcionou-- git pullparou de pedir senha.
Michael R
1
A comutação pode ser feita com este comando:git remote set-url origin [email protected]:USERNAME/REPOSITORY.git
guido
17

Eu tive que executar:

eval `ssh-agent -s`
ssh-add

Nota : Você precisará fazer isso novamente após cada reinicialização. Se você quiser evitá-lo, digite-o no arquivo " .bashrc ", que está no C:\Users\<<USERNAME>>\.bashrcWindows. Provavelmente, está oculto, portanto, verifique se você pode ver os arquivos ocultos.

Solução encontrada aqui .

Preto
fonte
15

Se você estiver usando o Windows, isso funcionou para mim:

eval `ssh-agent -s`
ssh-add ~/.ssh/*_rsa

Ele solicitará a senha no segundo comando, e é isso.

Marina
fonte
1
Quando você se desconecta e registra novamente, é necessário redigitar a senha todas as vezes.
trainoasis 12/08/19
11

Você precisa usar um agente ssh.
TL; DR : abra o terminal e tente

ssh-add

antes de empurrar. Digite sua senha quando solicitado.

Confira a resposta original do StackExchange aqui

Junaid
fonte
6

Recentemente, atualizei para o macOS Mojave e instalei algumas ferramentas via homebrew, que pareciam trocar a versão da Apple ssh-addpela diferente. Minha versão padrão de ssh-add não tinha a -Kopção Isso levou ao seguinte erro:

# ssh-add: illegal option -- K

Você pode ver qual versão ssh-addpossui executando which ssh-add.

(O meu foi armazenado em /usr/local/bin/ssh-add)

Para consertar isso, tive que apontar a chave para a versão da Apple :

/usr/bin/ssh-add -K ~/.ssh/id_rsa

O Git / GitHub funcionou perfeitamente depois. Para obter mais informações, consulte: Erro: ssh-add: opção ilegal - K

aboutaaron
fonte
Tive o mesmo problema no meu iMac com o High Sierra 10.13.6 - isso funcionou para mim. Obrigado!
emccracken
O meu estava funcionando bem e começou aleatoriamente a pedir senhas novamente - poderia ter sido após uma atualização recente. Isso consertou! Obrigado
mc01
5

Para o Mac OSX Sierra, descobri que as correções sugeridas no problema do github para o Open Radar corrigiam o meu problema. Parece que o Sierra mudou o comportamento padrão (comecei a ter esse problema após a atualização).

Este foi especialmente útil: https://github.com/lionheart/openradar-mirror/issues/15361#issuecomment-249059061

ssh-add -A 

Isso resultou em minha identidade sendo adicionada ao agente, depois que eu corri

ssh-add -K {/path/to/key}

Para resumir, no OSX.12:

ssh-add -K {/path/to/key}
ssh-add -A 

deve resultar em:

Identity added: {/path/to/file} ({/path/to/file})

EDIT: notei que na próxima vez que fiz uma reinicialização completa (o agente parou e reiniciou), isso não funcionou mais. A solução mais completa é o que o @ChrisJF mencionou acima: criando um ~/.ssh/configarquivo. Aqui está a minha saída:

$ cat ~/.ssh/config
Host *
  UseKeychain yes
  AddKeysToAgent yes
  IdentityFile ~/.ssh/id_rsa

Você pode adicionar quantas IdentityFileentradas precisar, mas esta é a configuração padrão. Esta é a resposta "tendência" no link openradar acima, ATM também.

zedd45
fonte
O editado resolveu meu problema. MacOS Mojave 10.14.3
Jose
4

Trabalhou no LinuxMint / Ubuntu

Execute os seguintes passos

Passo 1:

Ir para arquivo => /.ssh/config

Salve as linhas abaixo no arquivo

Host bitbucket.org
    HostName bitbucket.org
    User git
    IdentityFile /home/apple/myssh-privatekey
    AddKeysToAgent yes

Não se esqueça de adicionar esta linha AddKeysToAgent yes

Passo 2:

Abra o terminal e adicione o conjunto de chaves ao ssh-add

$ ssh-add -k /home/apple/myssh-privatekey

forneça a senha.

DhineshYes
fonte
3

Eu já havia definido uma senha, mas por algum motivo ela não a reconheceria mais. Acabei de adicionar novamente o arquivo de identidade ao meu chaveiro ssh-add -Ke ele parou de pedir minha senha.

André Herculano
fonte
isso só chaves cargas e não certificados
numediaweb
3

Isto é o que funcionou para mim:

git config --global core.sshCommand "'C:\Windows\System32\OpenSSH\ssh.exe'"
daniel sp
fonte
2

O problema parece ser porque você está clonando de HTTPS e não de SSH. Tentei todas as outras soluções aqui, mas ainda estava com problemas. Isso fez por mim.

Usando o seguinte osxkeychain helper:

  1. Descubra se você o tem instalado.

    git credential-osxkeychain

  2. Se não estiver instalado, você será solicitado a fazer o download como parte das Ferramentas de Linha de Comando do Xcode.

  3. Se estiver instalado, diga ao Git para usar osxkeychain helperusando a credential.helperconfiguração global :

    git config --global credential.helper osxkeychain

Na próxima vez que você clonar um URL HTTPS, você será solicitado a fornecer o nome de usuário / senha e a conceder acesso ao chaveiro OSX. Depois de fazer isso pela primeira vez, ele deve ser salvo no seu chaveiro e você não precisará digitá-lo novamente.

Bryan Perez
fonte
2

Esta resposta é principalmente para usuários do Windows e também é igualmente relevante se você estiver tendo problemas para clonar com tfs, github ou gitlab em qualquer outro sistema operacional.

O modo de autenticação padrão ao usar SSH é a chave privada. Sempre que isso falha por algum motivo, o ssh-agent volta para a autenticação baseada em nome de usuário e senha.

Há vários motivos pelos quais a autenticação baseada em chave padrão pode ter falhado. A seguir estão os casos mais comuns:

a) O ssh-agent não pode encontrar o arquivo de chave privada padrão que é id_rsa e nenhum outro caminho de chave é especificado explicitamente.

b) A chave pública armazenada no servidor está incorreta.

c) O caminho que você está tentando clonar está incorreto.

De qualquer forma, para solucionar o problema, execute primeiro o comando git clone com o registro detalhado com o comando:

GIT_TRACE=1 GIT_SSH_COMMAND="ssh -vvv" git clone ssh://pathToYourRepo

Você pode seguir cada etapa do log para obter uma intuição de qual pode ser o problema.


Solução de problemas no caso de (a)

  • Certifique-se de ter o nome da chave padrão id_rsa no diretório .ssh. Você pode ter especificado um nome de chave diferente ao gerar a chave com o comando ssh-keygen ou talvez não haja nenhuma chave).
  • Caso deseje especificar uma chave diferente para autenticação, use o seguinte comando:

    ssh-agent bash -c 'ssh-add ~/.ssh/anotherKey; git clone ssh://pathToYourRepo'
    

Solução de problemas no caso de (b)

  • Verifique se não há espaços em branco extras ao armazenar a chave pública no servidor.

Solução de problemas no caso de (c)

  • Verifique se você não está tentando clonar com a versão https do caminho do repositório.
caosifier
fonte
1

Se você estiver usando ssh url para git, quando solicitado a senha para ssh, coloque o nome de usuário como " git " e a senha como senha de login do sistema

Vinayak Deshpande
fonte
Alterar o tipo de URL remoto do repositório de HTTPSpara SSHresolver meu problema. Obrigado @MichaelR, seu artigo foi realmente útil, apesar de eu não ter lido nada sobre ele: D
Geradlus_RU
1

Gostaria de adicionar uma resposta para aqueles que ainda precisam digitar a senha porque definiram IdentitiesOnly como sim. Isso pode ser causado por várias chaves e pelo arquivo de identidade, sendo chaves para git ou servidor.

Depois de gerar a chave e copiá-la para o servidor:

ssh-keygen
ssh-copy-id -i ~/.ssh/12gpu_server.pub [email protected]

Eu achei que não funcionou.

Então eu fui checar o ~/.ssh/configarquivo, vi isso na parte inferior:

Host *
IdentitiesOnly yes

Então eu adiciono isso acima:

Host 12gpu
HostName 192.168.20.160
User lerner
IdentityFile ~/.ssh/12gpu_server

Eu posso simplesmente entrar digitando ssh 12gpu.

Em seguida, você pode adicionar várias chaves ssh usando seus nomes favoritos, e você só precisa adicionar as configurações como as quatro linhas acima ao arquivo de configuração.

Host é o nome que você gostaria de inserir quando se conectar ao servidor posteriormente; o HostName é o IP ou o domínio do servidor, como github.com; Usuário é o nome de usuário no qual você efetua login no servidor, como o nome de usuário ou git do github ou gitlab; e o IdentityFile é o arquivo em que você armazena a chave que você gerou.

Lerner Zhang
fonte
1

Geralmente, aqui estão as etapas para permitir que você faça uma conexão remota com o servidor usando ssh sem senha:

  • Crie um par de chave pública e privada rsa

    $ ssh-keygen -t rsa -b 4096 -C "your comments"
    
  • Copie sua chave pública e entre no seu servidor remoto

  • Adicione sua chave pública a .ssh / allowed_keys

  • Se você tiver várias chaves ssh no seu computador, poderá adicioná-las usando ssh-add

    $ ssh-add /path/to/private/key

  • Em seguida, tente ssh no seu servidor

    $ ssh username@your_ip_address

Fonte: http://diary-of-programmer.blogspot.com/2018/08/tips-how-to-ssh-to-your-digitalocean.html

Anang Satria
fonte
0

Use ssho URL remoto fornecido pelo Github não https.

Lost Koder
fonte
O OP disse claramente que ele está usando SSH em vez de HTTPS.
lento
0

Se você estiver usando o Windows e o GIT sem ferramentas de terceiros e sua chave não estiver protegida por uma senha / senha, use o seguinte:

  1. A variável de ambiente HOME deve ser definida como seu perfil de usuário (por exemplo, C: \ Users \ Laptop)
  2. Vá para a pasta C: \ Users \ Laptop \ .ssh \ e edite o arquivo "config" (ou crie o arquivo!) Exemplo: C: \ Users \ Laptop.ssh ​​\ config (nota: não existe no final!)
  3. Adicione seu host git-server ao arquivo "config" da seguinte maneira:

    #Example host entry
    Host myhostname.com
        HostName myhostname.com
        User git
        IdentityFile c:/users/laptop/.ssh/id_rsa.pub
        PasswordAuthentication no
        Port 422
    
  4. Salve o arquivo e clone o repositório assim:

    git clone ssh: //myhostname.com/git-server/repos/picalc.git

Você pode usar parâmetros de configuração adicionais para a entrada do host do arquivo "config". Eles podem ser encontrados na pasta de instalação local do git, por exemplo, " C: \ Arquivos de Programas \ Git \ etc \ ssh \ ssh_config ". Excerto:

# Host *
#   ForwardAgent no
#   ForwardX11 no
#   RhostsRSAAuthentication no
#   RSAAuthentication yes
#   PasswordAuthentication yes
#   HostbasedAuthentication no
#   GSSAPIAuthentication no
#   GSSAPIDelegateCredentials no
#   BatchMode no
#   CheckHostIP yes
#   AddressFamily any
#   ConnectTimeout 0
#   StrictHostKeyChecking ask
#   IdentityFile ~/.ssh/identity
#   IdentityFile ~/.ssh/id_rsa
#   IdentityFile ~/.ssh/id_dsa
#   IdentityFile ~/.ssh/id_ecdsa
#   IdentityFile ~/.ssh/id_ed25519
#   Port 22
#   Protocol 2
#   Cipher 3des
#   Ciphers aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc
#   MACs hmac-md5,hmac-sha1,[email protected],hmac-ripemd160
#   EscapeChar ~
#   Tunnel no
#   TunnelDevice any:any
#   PermitLocalCommand no
#   VisualHostKey no
#   ProxyCommand ssh -q -W %h:%p gateway.example.com
#   RekeyLimit 1G 1h
Fabian Stern
fonte
0

O mesmo problema para mim e a solução foi:

Consulte este documento do github para converter o URL do controle remoto de https para ssh. Para verificar se o URL do controle remoto é ssh ou https, use git remote -v. Para alternar de https para ssh: origem remota do conjunto de URLs git [email protected]: USERNAME / REPOSITORY.git @jeeYem

Bruno Leite
fonte
0

Mobaxterme tinha uma interface de interface do usuário para ele

setting > configuration > SSH > SSH Agent > [check] Use internal SSH agent "moboAgent" > add [your id_rsa and restart mobaxterme to set changes]

Amir Heshmati
fonte
0

Chave SSH - Ainda solicitando senha e senha

Se no Windows e usando PuTTY como gerador de chaves SSH , esta solução rápida e fácil acabou sendo a única solução funcional para mim usando uma linha de comando simples do Windows:

  1. Sua instalação do PuTTY deve vir com vários executáveis, entre outros, pageant.exeeplink.exe
  2. Ao gerar uma chave SSH com PuttyGen, a chave é armazenada com a .ppkextensão
  3. Executar "full\path\to\your\pageant.exe" "full\path\to\your\key.ppk"( deve ser citado). Isso executará o pageantserviço e registrará sua chave (após digitar a senha).
  4. Defina a variável de ambiente GIT_SSH=full\path\to\plink.exe( não deve ser citada). Isso redirecionará os comandos relacionados à comunicação git ssh para plinkque usarão o pageantserviço para autenticação sem solicitar a senha novamente.

Feito!

Nota1: Esta documentação alerta sobre algumas peculiaridades ao trabalhar com as GIT_SHHconfigurações de variáveis ​​de ambiente. Eu posso push, pull, fetchcom qualquer número de parâmetros adicionais para o comando e tudo funciona muito bem para mim (sem qualquer necessidade de escrever um script extra como nela propostas).

Nota2: O caminho para a PuTTYinstalação geralmente está no PATHmodo , portanto, pode ser omitido. Enfim, prefiro especificar os caminhos completos.

Automação:

O seguinte arquivo em lotes pode ser executado antes de usar o git na linha de comando. Ilustra o uso das configurações:

git-init.bat
   @ECHO OFF
   :: Use start since the call is blocking
   START "%ProgramFiles%\PuTTY\pageant.exe" "%HOMEDRIVE%%HOMEPATH%\.ssh\id_ed00000.ppk"
   SET GIT_SSH=%ProgramFiles%\PuTTY\plink.exe

De qualquer forma, tenho a GIT_SSHvariável definida SystemPropertiesAdvanced.exe > Environment variablese pageant.exeadicionada como a Runchave do registro (*).

(*) Etapas para adicionar uma Runchave do registro>

  1. corre regedit.exe
  2. Navegar para HKEY_CURRENT_USER > Software > Microsoft > Windows > CurrentVersion > Run
  3. Fazer (menu) Edit > New > String Value
  4. Digite um nome arbitrário (mas único)
  5. Do (menu) Edit > Modify...(ou clique duas vezes)
  6. Digite o caminho entre aspas para pageant.exee public key, por exemplo, "C:\Program Files\PuTTY\pageant.exe" "C:\Users\username\.ssh\id_ed00000.ppk"(observe que as %ProgramFiles%variáveis ​​etc. não funcionam aqui, a menos que escolha Expandable string valueno lugar da String valuena etapa 3.).
PavDub
fonte
-1

Acho que a resposta do @sudo bangbang deve ser aceita.

Ao gerar a chave ssh, basta pressionar "Enter" para pular a digitação da sua senha quando ela solicitar a configuração da senha.

Isso significa que você NÃO PRECISA de uma senha ao usar a chave ssh; lembre-se de quando gerar a chave ssh, NÃO insira a senha, apenas pressione 'Enter' para ignorá-la.

andrava
fonte
1
Esta é uma sugestão muito ruim. Veja o comentário de @ user456814
Sos