2009/5/1 Gabriel VLASIU <[email protected]>: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > > Salut! > > Ce mai exact nu merge cu ssh-agent-ul? Il pornesti si opresti de ficare > data cand intrii/iesi pe masina remote? De ce nu faci lock la agent cu > ssh-add cand dai logout? > > Sau, > exporti SSH_AGENT_PID si SSH_AUTH_SOCK la pornirea agent-ului intr-un > fisier si din .bashrc (daca folosesti bash) il incarci cu: > > [ -f $HOME/.fisier ] && \ > . $HOME/.fisier > > In felul asta nu mai conteaza daca ssh-agent-ul se inchide si se porneste > altul. > > Iar daca nu vrei sa te complici folosesti keychain care pentru asta a fost > gandit. >
Hmm, nu cred ca s-a inteles foarte bine. Vreau sa ajung la un setup in stilul "bastion host", la care ma conectez din cand in cand via ssh, ma reatasez la terminale, din care mai fac ssh ocazional mai departe. Fara screen, fiecare shell dureaza exact cat dureaza si conexiunea ssh, astfel incat variabilele de mediu reflecta exact numele socketului agentului, fie el local sau forwardat. Daca am screen, variabilele de mediu din terminale reflecta socketul din sesiunea in care au fost create. Daca ma reconectez la bastion host, serverul ssh o sa creeze socketul intr-o cale noua, care trebuie redeclarata in toate shellurile vechi din care vreau sa continui sa fac ssh. Cum exemplul face mai mult ca teoria, uite ce vreau: pe...@roadwarrior:~$ ssh-add [...] adaug cheia in agent pe...@roadwarrior:~$ ssh bastion pe...@bastion:~$ screen pe...@bastion[screen0]:~$ ssh webserver pe...@webserver:~$ [...] do stuff here pe...@webserver:~$ exit pe...@bastion[screen0]:~$ [...] la un moment dat ma deconectez de la screen, ies si de pe bastion si de pe roadwarrior, inchid tot si ma duc la culcare # a doua zi, sesiune noua (poate chiar de pe alta masina in loc de rw) pe...@roadwarrior:~$ ssh-add [...] alt agent, aceeasi cheie pe...@roadwarrior:~$ ssh bastion pe...@bastion:~$ screen -r pe...@bastion[screen0]:~$ ssh webserver Password: ## aici nu mai merge, pentru ca in shellul din [screen0] variabila SSH_AUTH_SOCK are valoarea de ieri, nu cea de azi. Acum intelegi problema? Merge sa verific manual valoarea lui SSH_AUTH_SOCK dinainte de screen -r si sa o re-export in screen dupa aia, dar e posibil ca in screen sa am pornita o alta aplicatie care la randul ei face ssh si in care mi-ar fi mai dificil sa fortez o redeclarare a environmentului, de aceea incerc sa obtin o solutie generica direct din screen. Pana acum ce-mi trece prin cap e sa fac un wrapper peste screen care sa faca un pipe cu nume unic per instanta de screen care sa fie cumva legat la ssh-auth-sock curent si sa exporte de la inceput in screen numele acela nou de socket. Pare insa o solutie cam precara, si nu-mi dau seama daca rezolva si probleme de X11 forwarding (desi se poate face aceeasi chestie si cu socketul ala tcp, I guess). Oricum, inainte sa reinventez roata patrata am zis ca merita sa intreb daca nu a mai avut altcineva problema asta. In orice caz, solutiile care implica copierea cheii private pe masina cu screenul nu ma intereseaza. In afara de problema cu agentul ssh as mai avea o dilema cu notificarile via dbus sau agentul gpg, dar par sa fie oarecum echivalente. In orice caz, ma intereseaza diverse povesti (de succes sau de groaza) de la oameni care folosesc un sistem similar. Catre Gabriel: te rog mentine threadul pe liste, ca de-aia ne-a dat statul liste de discutii. -- "Unix was written to play Spacewar and cheat at Scrabble, but Linux was created merely to prove that it booted." - a.s.r. quote _______________________________________________ RLUG mailing list [email protected] http://lists.lug.ro/mailman/listinfo/rlug
