git - mac - update ssh key




Chave SSH-Ainda pedindo senha e senha (15)

Eu tenho sido um pouco 'colocando' com o Github sempre pedindo meu nome de usuário e senha quando eu clonar um repositório. Eu quero ignorar este passo porque é um aborrecimento dentro do meu fluxo de trabalho.

Eu tentei configurar uma chave SSH (que eu fiz com sucesso) usando este guia. https://help.github.com/articles/generating-ssh-keys e eu tive sucesso.

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

Estou um pouco inseguro sobre o que perguntar, então vou apenas declarar meu objetivo.

Eu quero ser capaz de clonar repositórios sem ter que colocar informações no meu Github o tempo todo .

O que estou perdendo com minha chave SSH? Se alguém puder fornecer algumas orientações ou recursos, eu agradeceria, porque sempre me senti um pouco perdido quando se tratava de autenticação SSH no GitHub.

De meu conhecimento, este é um comando que testa se as coisas estão funcionando corretamente, aqui estão as saídas 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 eu insiro minha senha, isso deve falhar primeiro? Então, quando eu entro na minha senha, ela passa.


Adicionar identidade sem chave

Pode haver momentos em que você não quer que a frase secreta seja armazenada no chaveiro, mas não quer ter que digitar a senha repetidamente.

Você pode fazer isso assim:

ssh-add ~/.ssh/id_rsa 

Isso lhe pedirá a frase secreta, insira-a e ela não perguntará novamente até você reiniciar.

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 opção -K ( -k para o Ubuntu) ao adicionar a identidade assim:

ssh-add -K ~/.ssh/id_rsa

Mais uma vez, isso lhe pedirá a frase secreta, insira-a e, desta vez, ela nunca mais pedirá essa identidade.


Basta executar o seguinte comando:

ssh-add -K

Nunca pedirá que você insira a senha novamente.



Eu gostaria de adicionar uma resposta para aqueles que ainda precisam digitar a senha porque eles configuraram IdentitiesOnly como sim. Isso pode causar várias chaves e o 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 fui checar o ~/.ssh/config , vi isso no final:

Host *
IdentitiesOnly yes

Então eu adiciono isso acima:

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

Eu posso apenas entrar digitando ssh 12gpu .

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

Host é o nome que você gostaria de inserir quando se conecta ao servidor mais tarde; o HostName é o ip ou domínio do servidor, como github.com; Usuário é o nome de usuário que você loga no servidor como o nome de usuário ou git para github ou gitlab; e o IdentityFile é o arquivo onde você armazena a chave que você gerou.


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 eu descobri ao ler github.com/lionheart/openradar-mirror/issues/15361 e esta discussão no Twitter foi que a Apple propositalmente mudou 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 de El Cap, fiz o seguinte:

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

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

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


Eu tive que executar:

eval `ssh-agent -s`
ssh-add

Nota : Você terá que fazer isso novamente após cada reinicialização.

Solução encontrada here .


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

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


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 é armazenada em ~ / .ssh e é chamada id_rsa:

ssh-add -K ~/.ssh/id_rsa

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

Editar - Lidar com reinicialização

Para não ter que preencher sua senha, mesmo depois de um reinício, adicione o seguinte ao seu arquivo de configuração ssh (comumente localizado em ~ / .ssh / config)

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

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

Usando o osxkeychain helper da osxkeychain helper forma:

  1. Descubra se você 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 o osxkeychain helper usando a configuração global credential.helper :

    git config --global credential.helper osxkeychain

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


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

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

ssh-add -A 

Isso resultou na 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 da próxima vez que eu fiz uma reinicialização completa (aka o agente parou e reiniciado) isso não funcionou mais. A solução mais completa é o que @ChrisJF mencionou acima: criando um ~/.ssh/config . Aqui está a saída da minha:

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

Você pode adicionar quantas entradas do IdentityFile forem necessárias, mas essa é a configuração padrão. Esta é a resposta "tendência" no link openradar acima, ATM, também.


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

  1. A variável de ambiente HOME deve ser definida para o 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 (observação: não há nenhum. No final!)
  3. Adicione seu host git-server ao arquivo "config" da seguinte forma:

    #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: //meuhostname.com/git-server/repos/picalc.git

Você pode usar parâmetros de configuração adicionais para a entrada de host do arquivo "config". Estes podem ser encontrados em sua 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

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



Trabalhou no LinuxMint / Ubuntu

Siga 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 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

fornecer a senha.


Você pode remover a frase secreta da chave

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

ou você pode correr

$ ssh-keygen -p

você recebe um aviso para o arquivo de chaves. Por padrão, é ~/.ssh/id_rsa então pressione enter

Você será solicitado a inserir a senha atual.

Em seguida, haverá um prompt para nova frase secreta, pressione enter





ssh-keys