Eu tenho um serviço de construção automática que faz o download de um repositório privado git. O problema é que, ao tentar clonar o repositório, é necessário fornecer a senha, porque não é lembrada; então, como não há interação humana, ele espera para sempre a senha. Como forçar a lembrança de id_rsa.pub?
125
eval $(ssh-agent)
lugar.ssh-add ~/.ssh/myfile_rsa
copy > ~/.bashrc
em bash git para criar o arquivo bashrc no Windows, ignorar o erroEsta resposta explica como obter o nome de usuário e a senha do GitHub para serem armazenados permanentemente, não a senha da chave SSH.
No Windows, basta executar
Isso significa que na próxima vez em que você enviar, digite seu nome de usuário e senha como de costume, mas eles serão salvos nas credenciais do Windows. Você não precisará digitá-los novamente depois disso.
Por exemplo, envie para o GitHub sem inserir nome de usuário e senha todas as vezes (Git Bash no Windows) .
fonte
git
seu comportamento será alterado de acordo com a diretiva de configuração definida.Prefiro não precisar digitar minha senha SSH ao abrir novos terminais; infelizmente, a solução da starmonkey exige que a senha seja digitada em todas as sessões. Em vez disso, tenho isso no meu
.bash_profile
arquivo:Isso também lembrará minha senha para novas sessões de terminal; Eu só tenho que digitá-lo uma vez quando abro meu primeiro terminal após a inicialização.
Eu gostaria de creditar onde consegui isso; é uma modificação do trabalho de outra pessoa, mas não me lembro de onde veio. Obrigado autor anônimo!
Atualização 2019-07-01: Não acho que tudo isso seja necessário. Agora, eu sempre tenho esse trabalho assegurando que meu
.bash_profile
arquivo execute o ssh-agent:Então eu montei um
ssh
arquivo de configuração como este:fonte
Se entendi a pergunta corretamente, você já está usando uma chave SSH autorizada no serviço de compilação, mas deseja evitar a digitação da senha para cada clone?
Eu posso pensar em duas maneiras de fazer isso:
Se o serviço de construção estiver sendo iniciado interativamente: Antes de iniciar o serviço de construção, inicie
ssh-agent
com um tempo limite suficientemente longo (-t
opção). Em seguida, usessh-add
(o msysGit deve ter esses) para adicionar todas as chaves privadas necessárias antes de iniciar o serviço de compilação. Você ainda precisará digitar todas as senhas, mas apenas uma vez por lançamento do serviço.Se você quiser evitar digitar as frases secretas, sempre poderá removê-las das chaves SSH, conforme descrito em /server/50775/how-do-i-change-my- senha de chave privada , configurando uma nova senha vazia. Isso deve eliminar completamente o prompt de senha, mas é ainda menos seguro que a opção anterior.
fonte
Quando tentei enviar por push meu código, recebi o erro abaixo:
Após algumas horas de pesquisa, descobri que precisava usar o comando abaixo:
Depois de executar o comando acima, recebi o prompt para inserir meu nome de usuário e senha do GitHub. Depois de fornecer as credenciais corretas, sou capaz de enviar meu código por push.
fonte
A solução certa é:
Execute o terminal padrão do Windows - cmd e obtenha o diretório do seu perfil principal
Execute o Git Bash no diretório acima e crie o
.bashrc
arquivo com o comandoAbra o
.bashrc
arquivo com seu editor de texto favorito e cole o código da Ajuda do GitHub nesse arquivo:Reinicie o Git Bash e ele solicita sua senha (somente na primeira vez) e pronto. Nenhuma senha incomodando novamente.
fonte
Você precisa criar o
authorized_keys
arquivo na.ssh
pasta do usuário sob a qual você irá se conectar ao servidor de repositório. Por exemplo, supondo que você use o nomebuildservice
de usuário,repo.server
você pode executar:Então você deve verificar o seguinte:
Essa
id_rsa
chave privada correspondente é apresentada em[email protected]:~/.shh/id_rsa
.Essa impressão digital do repo.server é armazenada no
[email protected]:~/.ssh/known_hosts
arquivo. Normalmente, isso será feito após a primeira tentativa dessh
conexão com orepo.server
.fonte
cat id_rsa.pub > .ssh/authorized_keys
substituirá as chaves autorizadas existentes. Use>>
para adicionar em vez de substituir.