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.
pageant
que faz parteputty
. 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.Respostas:
Se você trabalha com
HTTPs
URLs, ele sempre solicita seu nome de usuário / senha.Se você estiver usando corretamente
SSH
ao 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.
fonte
git remote -v
. Para mudar de https para ssh:git remote set-url origin [email protected]:USERNAME/REPOSITORY.git
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:
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
-K
opção (-k
para Ubuntu) ao adicionar a identidade desta forma:Mais uma vez, isso solicitará a senha, digite-a e, desta vez, nunca mais solicitará essa identidade.
fonte
-K
opção para armazenar a senha no seu chaveiro ao adicioná-lo, por exemplo:ssh-add -K ~/.ssh/id_rsa
-k
para mim ... (Linux Mint / Ubuntu 14.04 base) mas sim! finalmente resolvi isso ...ssh-add
adicionará 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.No Mac OSX, você pode adicionar sua chave privada ao chaveiro usando o comando:
Se sua chave privada estiver armazenada em ~ / .ssh e tiver o nome 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)
fonte
~/.ssh
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:
ssh-add -K ~/.ssh/id_rsa
Nota: altere o caminho para onde sua chave id_rsa está localizada.
ssh-add -A
Crie (ou edite, se existir) o seguinte
~/.ssh/config
arquivo:E agora minha senha é lembrada entre as reinicializações do meu Mac!
fonte
ssh-add -A
não é necessário se você tem apenas uma chave de~/.ssh/id_rsa
)Você pode remover a senha da chave
ou você pode correr
você recebe um prompt para o arquivo de chave. Por padrão,
~/.ssh/id_rsa
pressione EnterVocê será solicitado a inserir a senha atual.
Em seguida, será solicitado um novo código de acesso, pressione enter
fonte
-K
,-k
,-A
não funcionou para mim).Basta executar o seguinte comando:
Nunca solicitará que você digite a senha novamente.
fonte
ssh-add
apenas "adiciona identidades de chave privada ao agente de autenticação" e a-K
opção simplesmente o faz "Ao adicionar identidades, cada frase secreta também será armazenada nas chaves do usuário".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)
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)
fonte
git pull
egit push
. Troquei meu URL do tipo HTTPS para SSH, e funcionou--git pull
parou de pedir senha.git remote set-url origin [email protected]:USERNAME/REPOSITORY.git
Eu tive que executar:
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>>\.bashrc
Windows. Provavelmente, está oculto, portanto, verifique se você pode ver os arquivos ocultos.Solução encontrada aqui .
fonte
Se você estiver usando o Windows, isso funcionou para mim:
Ele solicitará a senha no segundo comando, e é isso.
fonte
Tente
ssh-agent
como está explicado lá: https://help.github.com/articles/working-with-ssh-key-passphrasesfonte
Você precisa usar um agente ssh.
TL; DR : abra o terminal e tente
antes de empurrar. Digite sua senha quando solicitado.
fonte
Recentemente, atualizei para o macOS Mojave e instalei algumas ferramentas via homebrew, que pareciam trocar a versão da Apple
ssh-add
pela diferente. Minha versão padrão dessh-add
não tinha a-K
opção Isso levou ao seguinte erro:# ssh-add: illegal option -- K
Você pode ver qual versão
ssh-add
possui executandowhich 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 :
O Git / GitHub funcionou perfeitamente depois. Para obter mais informações, consulte: Erro: ssh-add: opção ilegal - K
fonte
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
Isso resultou em minha identidade sendo adicionada ao agente, depois que eu corri
Para resumir, no OSX.12:
deve resultar em:
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/config
arquivo. Aqui está a minha saída:Você pode adicionar quantas
IdentityFile
entradas precisar, mas esta é a configuração padrão. Esta é a resposta "tendência" no link openradar acima, ATM também.fonte
Trabalhou no LinuxMint / Ubuntu
Execute os seguintes passos
Passo 1:
Salve as linhas abaixo no arquivo
Passo 2:
Abra o terminal e adicione o conjunto de chaves ao ssh-add
forneça a senha.
fonte
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 -K
e ele parou de pedir minha senha.fonte
Isto é o que funcionou para mim:
fonte
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
:Descubra se você o tem instalado.
git credential-osxkeychain
Se não estiver instalado, você será solicitado a fazer o download como parte das Ferramentas de Linha de Comando do Xcode.
Se estiver instalado, diga ao Git para usar
osxkeychain helper
usando acredential.helper
configuraçã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.
fonte
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:
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)
Caso deseje especificar uma chave diferente para autenticação, use o seguinte comando:
Solução de problemas no caso de (b)
Solução de problemas no caso de (c)
fonte
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
fonte
HTTPS
paraSSH
resolver meu problema. Obrigado @MichaelR, seu artigo foi realmente útil, apesar de eu não ter lido nada sobre ele: DGostaria 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:
Eu achei que não funcionou.
Então eu fui checar o
~/.ssh/config
arquivo, vi isso na parte inferior:Então eu adiciono isso acima:
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.
fonte
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
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
fonte
Use
ssh
o URL remoto fornecido pelo Github nãohttps
.fonte
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:
Adicione seu host git-server ao arquivo "config" da seguinte maneira:
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:
fonte
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
fonte
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]
fonte
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:
pageant.exe
eplink.exe
.ppk
extensão"full\path\to\your\pageant.exe" "full\path\to\your\key.ppk"
( deve ser citado). Isso executará opageant
serviço e registrará sua chave (após digitar a senha).GIT_SSH=full\path\to\plink.exe
( não deve ser citada). Isso redirecionará os comandos relacionados à comunicação git ssh paraplink
que usarão opageant
serviço para autenticação sem solicitar a senha novamente.Feito!
Nota1: Esta documentação alerta sobre algumas peculiaridades ao trabalhar com as
GIT_SHH
configurações de variáveis de ambiente. Eu possopush
,pull
,fetch
com 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
PuTTY
instalação geralmente está noPATH
modo , 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:
De qualquer forma, tenho a
GIT_SSH
variável definidaSystemPropertiesAdvanced.exe > Environment variables
epageant.exe
adicionada como aRun
chave do registro (*).(*) Etapas para adicionar uma
Run
chave do registro>regedit.exe
HKEY_CURRENT_USER > Software > Microsoft > Windows > CurrentVersion > Run
Edit > New > String Value
Edit > Modify...
(ou clique duas vezes)pageant.exe
epublic 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 escolhaExpandable string value
no lugar daString value
na etapa 3.).fonte
Como explicado em Clonar um repositório Git do VSTS sobre SSH, solicita uma senha! Inesperado
O problema pode estar ocorrendo devido à falha na autenticação da chave pública, solicitando a senha da conta da minha empresa.
Isso não aconteceria se a autenticação da chave pública fosse bem-sucedida.
Então você pode verificar id_rsa.pub e até criar um novo.
fonte
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.
fonte