Toda vez que eu SSH em outro servidor do nosso servidor Ubuntu sem cabeça, sou solicitada a senha do meu arquivo de chave. Mesmo se eu já tiver conectado ao servidor.
Você tem alguma idéia de por que isso talvez? Pode ser algo tão simples quanto ssh-agent
não estar em execução no momento ou algo assim.
A mesma chave no meu desktop Ubuntu Gnome está funcionando bem. O servidor e a área de trabalho estão executando o Ubuntu 10.10.
ps -ef | grep '[s]sh-agent'
simon 3219 1 0 12:46 ? 00:00:00 ssh-agent
ssh-agent
está em execução:ps -ef | grep '[s]sh-agent'
Respostas:
Mesmo se o agente estiver ativo, se determinadas variáveis de ambiente não estiverem definidas, você não terá referência ao agente. Além disso, mesmo que esteja tudo bem, agente e variáveis, a identidade não é enviada automaticamente para o agente: isso é uma tarefa para
ssh-askpass
trabalhar apenas em sessões X.Se você estiver usando o bash, crie o arquivo
~/.bash_profile
com este conteúdo:modifique o nome do arquivo de
~/.ssh/id_dsa
acordo com suas necessidades e adicione esta linha a~/.bash_logout
Uma última observação: isso não interfere em uma sessão do gnome, porque, nesse caso,
~/.profile
é apenas originário, e você pode se beneficiar dassh-askpass
interface gráfica que solicita uma senha e a envia parassh-agent
.fonte
ssh
em outras máquinas. Mas isso não ocorre quando você usagit
para empurrar ou puxar um repositório público. Você tem alguma idéia de como eu poderia resolver isso também?ssh()
, chame-agit()
e altere a última linha de/usr/bin/ssh
para/usr/bin/git
. Além disso, adicione uma linha final comexport -f git
.ssh
na máquina com obash_profile
arquivo que você criou acima da instalação, ele me pede a senha da chave. Por alguma razão agora, toda vez que eu escrevo, pergunta antes mesmo de executarssh
ougit
. Consulte gist.github.com/942082 para obter o prompt de retorno ao efetuar login na máquina ofensiva.git
interagir comssh
, e eu não usogit
para que eu não possa tentar. Modifiquei o~/.bash_profile
para incluir agit()
função que mencionei acima, para ter certeza de que minha explicação anterior era clara. Além disso, parece que na saída você mostra que modificou a máquina servidor, mas todos os meus conselhos foram direcionados apenas à máquina cliente.git
envio por push para um forja / repositório central, para que o arquivo esteja no lugar certo. Eu acho que você acabou de me dar a dica / movimentou meus pensamentos. Eu tenho um prompt especial do bash que exibe o ramo git do arquivopwd
. Aposto que é isso que está acionando a solicitação de senha no login do bash, pois ele tenta git stat antes de renderizar o prompt do bash!Recentemente, comecei a usar o ssh-ident:
https://github.com/ccontavalli/ssh-ident
tudo o que você precisa fazer é adicionar algo como:
no seu
.bashrc
. Como alternativa, você podeln -s /path/to/ssh-ident ~/bin/ssh
ou algum outro diretório em seu PATH antes/bin
e/usr/bin
.fonte
Esta pergunta tem uma resposta muito boa no SuperUser .
Achei a dica para usar o Keychain bastante útil.
fonte