Posso usare PLink e Pageant con la ssh di Cygwin?


26

Ora sto usando msysgit a causa degli strumenti della GUI, che usano i programmi Pageant e PLink di Putty, ma uso Cygwin come terminale SSH generale. Stavo usando ssh-agent su Cygwin, ma ciò significa che devo inserire le mie passphrase della chiave SSH per entrambi i gestori delle chiavi SSH. È possibile configurare tutti i miei strumenti con porta Unix (msys, git, cygwin, Ruby Net: SSH, ecc.) Per usare PLink / Pageant invece di ssh-agent? Sembra che sia il tipo di cosa per cui è stato creato PLink, ma non riesco a trovare documentazione su come.


Risposte:


17

Ho anche scritto un proxy tra openssh e pageant, che io chiamo ssh-pageant . Sembra quasi lo stesso approccio della sciarada, ma non ne avevo sentito parlare. Beh, in caso di problemi, ho pensato di buttare via ssh-corteo per provare invece.


11

Mi sono imbattuto in una sciarada qualche tempo fa, che sostituisce ssh-agent e proxy a Pageant. Al momento non riuscivo a farlo funzionare, e da allora non ho avuto la possibilità di giocarci, ma potrebbe valere la pena provarlo. Se hai fortuna, ti preghiamo di postare indietro e fammi sapere, è stato nella mia lista di cose da fare per secoli!


Posso confermare che funziona. (Come può @ Nightfly in basso)
Christopher Galpin,

2
Vorrei solo aggiungere che prima di costruire il pacchetto di assicurarsi di avere seguenti pacchetti oltre al difetto cygwin installazione: make, gcc-core, keychain, psmisc, e, naturalmente openssh. In questo modo se segui istruzioni molto dettagliate dal file README non otterrai alcun errore
Alexander Pogrebnyak

5

Stai cercando di integrare ssh-agent e pageant in modo da avere un solo keystore. Un modo per farlo è usare PuTTY come terminale, mantenere le chiavi in ​​concorso, abilitare l'inoltro dell'agente, eseguire Cygwin sshd e ssh su localhost. Questo ti darà un ambiente in cui le chiavi sono servite dal concorso tramite la connessione ssh con PuTTY - non è necessario eseguire ssh-agent.

Dovrebbe essere possibile fare lo stesso con Plink. Basta usare l'opzione -A e utilizzare l'impostazione SSH_AUTH_SOCK risultante nelle sessioni interattive Cygwin. Disclaimer: non ho provato questo.

Modifica: ora ho provato questo; funziona benissimo. Ho creato un collegamento a PLINK:

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

Quindi, in un terminale Cygwin (utilizzo ovviamente PuTTYcyg):

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

Sembra funzionare alla grande, ma richiede ancora un SSH locale.

Ciò che sarebbe davvero fantastico è avere un agente compatibile con openssh che comunichi direttamente con il keystore del concorso, ma questo non accadrà a meno che qualcuno non scriva una tale bestia. L'ho esaminato molte lune fa e mi è sembrato più un problema di quanto valesse la pena, dato che questo aggirare è abbastanza facile.


mmm, questa non è affatto una cattiva idea. Probabilmente è come andrò. Grazie! E per quanto riguarda il tuo agente compatibile con openssh, sì, è esattamente quello che speravo potesse fornire Plink. Sembra che sarebbe un pezzo di codice di valore piuttosto alto, dal momento che così tanto lavoro serve a rendere il software (come git) compatibile sia con openssh che con plink. Perché non avere solo un livello di traduzione? Sembra "il modo Unix" per farlo. :)
Jerph

2

Potresti andare dall'altra parte e usare puttycyg?

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

In questo modo hai stucco come terminale cygwin.


Non sono sicuro di quali sarebbero le conseguenze dell'utilizzo di putty per i miei script Cygwin. Non sono molto chiaro su dove Puttycyg si inserisca, immagino. Ci penserò - grazie!
Jerph

0

suggerirei la stessa cosa (usa lo stucco) ma uso solo lo stucco poiché si integra meglio con pagent e plink, lo uso insieme a msysgit ma uso git bash fornito da msysgit e andrebbe bene, è un po 'noioso passare tra le console ma anche la separazione può essere buona


Purtroppo non posso lasciare Cygwin. Dipendo da alcuni dei pacchetti che fornisce, non solo da roba pura console ssh. Msys ha i suoi punti di forza (integrazione "migliore" con molti strumenti di Windows e la versione di Ruby di Windows, per esempio) ma sarebbe molto difficile migrare i miei script basati su Cygwin con gli strumenti disponibili su Msys.
Jerph

0

Un altro modo per farlo.

Aggiungi questa riga all'inizio di .bash_profile

exec ssh-agent /usr/bin/bash

Quindi aggiungi le tue chiavi nella parte inferiore di .bashrc

ssh-add ~/.ssh/myprivate

In che modo questo link a Pageant? La domanda era su come non usare ssh-agentoltre a quello.
Tobias Kienzler,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.