Estou usando o git bash. Eu tenho que usar
eval `ssh-agent.exe`
ssh-add /my/ssh/location/
toda vez que inicio um novo git bash.
Existe uma maneira de definir o agente ssh permanentemente? Ou o Windows tem uma boa maneira de gerenciar as chaves ssh?
Eu sou um cara novo, por favor me dê um tutorial detalhado, obrigado!
/my/ssh/location/
equivalente a algo como/c/Users/Foobar/.ssh/
?Respostas:
Em uma sessão git bash, você pode adicionar um script para
~/.profile
ou~/.bashrc
( com~
sendo geralmente definida como%USERPROFILE%
), a fim de que referida sessão para iniciar automaticamente ossh-agent
. Se o arquivo não existir, basta criá-lo.Isto é o que o GitHub descreve em " Trabalhando com as senhas das chaves SSH ".
A seção " Iniciando automaticamente o ssh-agent no Git for Windows " desse artigo possui um script robusto que verifica se o agente está em execução ou não. Abaixo está apenas um trecho, consulte o artigo do GitHub para obter a solução completa.
Outros recursos:
" Conseguir que o ssh-agent trabalhe com o git executado a partir do shell de comando do Windows " possui um script semelhante, mas eu me referiria ao artigo do GitHub acima, principalmente, que é mais robusto e atualizado.
fonte
PS: Essas instruções estão no contexto de um shell Bash aberto no Windows 10 Linux Subsystem e não mencionam as chaves SSH de vinculação simbólica geradas no Windows com Bash no Ubuntu no Windows no Windows
1) Atualize seu .bashrc adicionando o seguinte
2) Em seguida, execute
$ source ~/.bashrc
para recarregar sua configuração.As etapas acima foram realizadas em https://github.com/abergs/ubuntuonwindows#2-start-an-bash-ssh-agent-on-launch
3) Crie um arquivo de configuração SSH, se não estiver presente. Use o seguinte comando para criar um novo:
.ssh$ touch config
4) Adicione o seguinte a
~/.ssh/config
5) Adicione sua chave ao agente SSH usando o comando
$ ssh-add ~/.ssh/id_work_gmail
e, em seguida, você poderá se conectar à sua conta do github ou host remoto usando o ssh. Por exemplo, no contexto dos exemplos de código acima:ou
Essa adição de chave ao agente SSH deve ser executada apenas uma vez.
6) Agora saia da sua sessão do Bash no Windows Linux Subsystem, ou seja, saia de todos os consoles do Bash novamente e inicie um novo console novamente e tente fazer o SSH no seu Github Host ou outro host conforme configurado no arquivo de configuração SSH e deve funcionar sem a necessidade de nenhum extra passos.
Nota:
Se você enfrentar
Bad owner or permissions on ~/.ssh/config
, em seguida, atualizar as permissões usando o comandochmod 600 ~/.ssh/config
. Referência: https://serverfault.com/a/253314/98910Para que as etapas acima funcionem, você precisará do OpenSSH v 7.2 e mais recente . Se você tiver um mais antigo, poderá atualizá-lo usando as etapas mencionadas em https://stackoverflow.com/a/41555393/936494
Os mesmos detalhes podem ser encontrados nos principais problemas do agente SSH do subsistema Windows 10 Linux
Obrigado.
fonte
>> "${SSH_ENV}"
? Não deveria ser apenas> "${SSH_ENV}"
? O seu funciona, é claro, mas ele acaba com um~/.ssh/environment
arquivo cada vez mais lento , por (como eu atualmente penso !?) sem motivo ... Muitos, muito obrigado! Eu sinto que esse script deve ser incluído no padrão.bashrc
do WSL Ubuntu, é tão útil!Eu achei a maneira mais fácil de conseguir isso usando o Pageant como agente SSH e plink.
Você precisa ter uma sessão de massa configurada para o nome do host usado em seu controle remoto.
Você também precisará do plink.exe, que pode ser baixado no mesmo site que o putty.
E você precisa do Pageant executando com a chave carregada. Eu tenho um atalho para concurso na minha pasta de inicialização que carrega minha chave SSH quando eu faço login.
Ao instalar o git-scm, você pode especificá-lo para usar o tartartoise / plink em vez do OpenSSH.
O efeito líquido é que você pode abrir o git-bash sempre que quiser e pressionar / puxar sem ser desafiado por senhas.
O mesmo se aplica às sessões de massa e WinSCP quando o concurso tem sua chave carregada. Isso torna a vida muito mais fácil (e segura).
fonte
Como não gosto de usar massa no Windows como solução alternativa, criei um utilitário muito simples ssh-agent-wrapper . Ele verifica suas pastas .ssh e adiciona todas as suas chaves ao agente. Você simplesmente precisa colocá-lo na pasta de inicialização do Windows para que ele funcione.
Pressupostos :
fonte
Não consegui fazer isso funcionar com base na melhor resposta, provavelmente porque sou um noob de PC e perdi algo óbvio. Mas apenas para sua informação, no caso de ajudar alguém tão desafiado quanto eu, o que FINALMENTE funcionou foi através de um dos links aqui (referenciado nas respostas). Isso envolveu simplesmente colar o seguinte no meu
.bash_profile
:Eu provavelmente tenho algo configurado estranho, mas não foi bem sucedido quando o adicionei ao meu
.profile
ou.bashrc
. O outro desafio real em que me deparei é que não sou administrador neste computador e não posso alterar as variáveis de ambiente sem a aprovação da TI, portanto, essa é uma solução para aqueles que não podem acessar isso.Você sabe que está funcionando se for solicitada sua senha ssh ao abrir o git bash. Aleluia, algo finalmente funcionou.
fonte
Coloque isso no seu ~ / .bashrc (ou em um arquivo que tenha origem), o que impedirá que seja executado várias vezes desnecessariamente por shell:
E então adicione "AddKeysToAgent yes" a ~ / .ssh / config:
ssh para o seu servidor (ou git pull) normalmente e você será solicitado apenas com senha / senha uma vez por sessão.
fonte
Crie um novo .bashrc arquivo no seu diretório ~.
Lá você pode colocar os comandos que deseja executar sempre que iniciar o bash
fonte
.bashrc
arquivo (comoecho test
e verifique se ele está carregado quando você executa o Git Bash..bashrc
na sua pasta de usuário, por exemploC:\Users\john
.Solução de dois seqüência simples de esta resposta :
Para sh , bash , etc:
Para csh , tcsh , etc:
fonte