Posso usar o PLink and Pageant com o ssh do Cygwin?

26

Agora estou usando o msysgit por causa das ferramentas da GUI, que usam os utilitários Putty's Pageant e PLink, mas uso o Cygwin como um terminal SSH geral. Eu estava usando o ssh-agent no Cygwin, mas isso significa que tenho que inserir minhas senhas de chave SSH para os dois gerenciadores de chaves SSH. É possível configurar todas as minhas ferramentas de porta Unix (msys, git, cygwin, Ruby Net: SSH etc.) para usar PLink / Pageant em vez do ssh-agent? Parece que foi para isso que o PLink foi criado, mas não consigo encontrar documentação sobre como.

Jerph
fonte
3
cinco anos depois: "PuttyAgent agora suporta openssh / cygwin / msys"
Tobias Kienzler 8/15/15

Respostas:

17

Também escrevi um proxy entre openssh e pageant, que chamo de ssh-pageant . Parece praticamente a mesma abordagem que a farsa, mas eu não tinha ouvido falar. Bem, caso você tenha problemas, pensei em jogar o ssh-pageant para tentar.

Josh Stone
fonte
11

Me deparei com a charada há um tempo atrás, que substitui o ssh-agent e os proxies do Pageant. Na época, eu não conseguia fazê-lo funcionar e não tive a chance de brincar com isso desde então, mas pode valer a pena tentar. Se você tiver alguma sorte, por favor, poste de volta e me avise, está na minha lista de coisas para fazer há muito tempo!

Jon M
fonte
Eu posso confirmar que funciona. (Como pode @ Nightfly abaixo)
Christopher Galpin
2
Gostaria apenas de acrescentar que antes de construir a marca pacote certeza que você tem seguintes pacotes, além de padrão cygwin instalação: make, gcc-core, keychain, psmisc, e, é claro openssh. Dessa forma, se você seguir instruções muito detalhadas do arquivo README, não obterá erros
Alexander Pogrebnyak
5

Você está procurando integrar ssh-agent e pageant para ter apenas um keystore. Uma maneira de fazer isso é usar o PuTTY como seu terminal, manter suas chaves no concurso, ativar o encaminhamento de agentes, executar Cygwin sshd e ssh no localhost. Isso fornecerá um ambiente em que as chaves são servidas pelo concurso pela conexão ssh com o PuTTY - sem a necessidade de executar o ssh-agent.

Deve ser possível fazer o mesmo com o Plink. Basta usar a opção -A e usar a configuração SSH_AUTH_SOCK resultante nas suas sessões interativas do Cygwin. Disclaimer: Eu não tentei isso.

Edit: Eu já tentei isso; funciona muito bem. Eu criei um atalho para PLINK:

"C:\path\to\PLINK.EXE" -A -ssh -l yournamehere localhost "echo $SSH_AUTH_SOCK; while :; do sleep 86400; done"

Então, em um terminal Cygwin (eu uso PuTTYcyg, é claro):

export SSH_AUTH_SOCK=/tmp/ssh-crYQh24AMq/agent.3964
ssh-add -l

Parece funcionar muito bem, mas ainda requer um sshd local.

O que seria realmente ótimo é ter um agente compatível com openssh que se comunique diretamente com o keystore do concurso, mas isso não acontecerá a menos que alguém escreva um animal assim. Eu olhei para ele muitas luas atrás e parecia mais problemas do que valia a pena, uma vez que essa solução alternativa é bastante fácil.


fonte
mmm, isso não é uma má idéia. Provavelmente é como eu vou. Obrigado! E em relação ao seu agente compatível com openssh, sim, é exatamente isso que eu esperava que o plink pudesse fornecer. Parece que seria um pedaço de código de alto valor, pois tanto trabalho é feito para tornar o software (como git) compatível com o openssh e o plink. Por que não apenas ter uma camada de tradução? Parece "o jeito Unix" de fazer isso. :)
Jerph
2

Você poderia seguir o outro caminho e usar o puttycyg?

[ http://code.google.com/p/puttycyg/]

Dessa forma, você terá a massa como seu terminal cygwin.

davey
fonte
Não sei ao certo quais seriam as consequências do uso de massa para meus scripts do Cygwin. Eu não sou muito claro sobre onde puttycyg se insere, eu acho. Vou dar uma olhada - obrigado!
Jerph
0

Eu sugeriria a mesma coisa (use putty), mas apenas use putty, pois se integra melhor com pagent e plink, eu o uso junto com o msysgit, mas use o git bash fornecido pelo msysgit e seria bom, é um pouco tedioso alternar entre consoles, mas a separação também pode ser boa

seanl
fonte
Infelizmente não posso deixar Cygwin. Eu dependo de alguns dos pacotes que ele fornece, não apenas do material puro do console ssh. O Msys possui seus pontos fortes (integração "melhor" com muitas ferramentas do Windows e a versão do Windows do Ruby, por exemplo), mas seria muito difícil migrar meus scripts baseados no Cygwin com as ferramentas disponíveis no Msys.
Jerph
0

Outra maneira de fazer isso.

Adicione esta linha na parte superior de .bash_profile

exec ssh-agent /usr/bin/bash

Em seguida, adicione suas chaves na parte inferior de .bashrc

ssh-add ~/.ssh/myprivate
ken
fonte
Como isso vincula o Pageant? A questão era sobre como não usar ssh-agentalém disso.
Tobias KIENZLER