anoniem Geplaatst: 17 december 2003 Delen Geplaatst: 17 december 2003 Ik zit wat te fröbelen met een (zelfbedachte) "wrapper" rond ssh. Die "wrapper" zit (zeg) in ssh-alias. In /etc/profile.d/ssh.sh (dat vanzelf wordt "aangeroepen" door /etc/profile) heb ik gestopt:[code:1:8029d97f4c]alias ssh='ssh-alias'[/code:1:8029d97f4c]Dat werkt zoals ik gehoopt had, mits ik ssh vanaf de command line (in BASH) aanroep. Roep ik ssh namelijk aan vanaf "Run Application"(GNOME) of de MiniCli (KDE) - zeg maar: met Alt+F2 - dan wordt deze alias genegeerd. Zelfde probleem treedt op als ik (zelfs in BASH) een programma aanroep dat op zijn beurt ssh aanroept (denk: vncviewer -via ...). Klopt het dat een alias alleen werkt vanaf de command line (in BASH)? Zo ja, wat is daarvoor een workaround? Quote Link naar reactie
anoniem Geplaatst: 17 december 2003 Auteur Delen Geplaatst: 17 december 2003 Hoe dat bij Gnome werkt weet ik niet, maar bij KDE is dhe gebruikte shell in minicli geen Bash, maar kdeinit. Hierdoor werkt de alias niet denk ik. Max Quote Link naar reactie
anoniem Geplaatst: 18 december 2003 Auteur Delen Geplaatst: 18 december 2003 Ik weet niet of het slim is om een alias te maken voor een zo 'normale' en veelgebruikte lettercombinatie: cp, ls, vi, top, ssh zijn toch commando's waarbij je een zeker gedrag verwacht. Kan je wat je wil bereiken niet via de ssh_config file in /etc/ssh of ~/.ssh? Ik bespaar sinds kort veel typewerk door de mogelijkheden van deze file te hebben bestudeerd. Ik kan niet precies uitleggen hoe het nou zit, maar je hebt een login en een non-login shell. Voor de twee types, kun je veschillende config-files gebruiken. De ene file is ~/.bashrc en de andere ~/.bash_profile. Ik neem aan dat /etc/profile de systemwide .bash_profile is (/etc/profile wordt door meer Bourne shells gebruikt). Als ik het allemaal goed begrijp, is de profile file voor een login shell. Het opstarten van een programma in een desktop of via vnc doorloop je niet het gewone login proces en wordt de configuratie die jij hebt gemaakt niet ingelezen. Probeer eens de verschillende locaties waar je bash config kunt plegen. Log wel steeds opnieuw uit en in om er voor te zorgen dat alles goed wordt geset. Quote Link naar reactie
anoniem Geplaatst: 18 december 2003 Auteur Delen Geplaatst: 18 december 2003 Aliases werken sowieso alleen in de shell. Dus als minicli een shell aanroept om een commando uit te voeren kun je de alias in een opstartbestand zetten dat door de shell wordt gelezen. Klein probleempje is dat een shell normaliter alleen zijn opstartbestanden (/etc/profile etc.) leest als hij interactief wordt opgestart. Dit kun je echter veranderen als je de omgevingsvariabele BASH_ENV instelt op een bestand dat je ook non-interactief geladen wilt hebben, bijvoorbeeld [b:092699160a]/etc/bashrc-non-interactive[/b:092699160a]. In dat bestand kun je functies of aliasen definiëren. Met de shell optie expand_aliases kun je regelen dat aliases ook worden geëxpandeerd in non-interactieve modus. Zie man bash. Maar het blijft zo dat als minicli enz. de shell niet gebruiken maar zelf de commandoregel parsen, dat aliases en functies dan niet werken. In dat geval kun je beter een klein scriptje ergens in je PATH neerzetten met de gewenste functionaliteit. Quote Link naar reactie
anoniem Geplaatst: 18 december 2003 Auteur Delen Geplaatst: 18 december 2003 Log je grafisch in? Dus via KDM, GDM, etc. Dan kun je wel degelijk een werkende alias maken afair door de alias op te nemen in .xsession Deze file wordt bij grafische logins als vervanger voor .bashrc of andere bash config files gebruikt. Quote Link naar reactie
anoniem Geplaatst: 18 december 2003 Auteur Delen Geplaatst: 18 december 2003 Dank voor alle antwoorden (dus niet alleen robian)[quote:996003c50f="robian"]Ik weet niet of het slim is om een alias te maken voor een zo 'normale' en veelgebruikte lettercombinatie: cp, ls, vi, top, ssh zijn toch commando's waarbij je een zeker gedrag verwacht. Kan je wat je wil bereiken niet via de ssh_config file in /etc/ssh of ~/.ssh? Ik bespaar sinds kort veel typewerk door de mogelijkheden van deze file te hebben bestudeerd.[/quote:996003c50f]Ik heb geprobeerd de "wrapper" transparant te houden, die "wrapper" roept als het goed is - ik ben niet zo'n script talent - uiteindelijk altijd /usr/bin/ssh aan met alle opties waarmee ssh was aangeroepen. Wat ik probeerde (en wat lijkt te zijn gelukt, zie volgende post): indien nodig ssh-add te draaien voordat ik ssh aanroep. Dan hoef ik per sessie hoogstens één keer mijn "passphrase" in te typen, en wel zonder dat ooit voor niets te doen. Het lijkt gelukt: als ik nu ssh aanroep zit mijn "identity" in elk geval in de "ssh-agent" en hoef ik nooit meer een password in te typen om in te loggen (een en ander wordt, nu ik mijn "passphrase" namelijk heb getypt, afgehandeld door ssh-agent). Ik hoop maar dat ik het wiel niet opnieuw heb uitgevonden ... Quote Link naar reactie
anoniem Geplaatst: 18 december 2003 Auteur Delen Geplaatst: 18 december 2003 En de hoofdprijs is voor:[quote:94aad16f73="wbsoft"]In dat geval kun je beter een klein scriptje ergens in je PATH neerzetten met de gewenste functionaliteit.[/quote:94aad16f73]Inderdaad. Het is /usr/bin/ssh, maar /usr/local/bin wordt eerder genoemd in mijn $PATH. Oplossing dus: mijn "wrapper" opslaan als /usr/local/bin/ssh en alle programma's die ssh aanroepen moeten (als ik het goed zie) eerst langs mijn "wrapper". Het alias heb ik dan helemaal niet meer nodig (sterker: dat zit dan in de weg ...) Motto: fröbelen kan met GNU/Linux erg leuk zijn! Quote Link naar reactie
anoniem Geplaatst: 19 december 2003 Auteur Delen Geplaatst: 19 december 2003 [quote:b2c2f3970d="PeBo"]En de hoofdprijs is voor:[quote:b2c2f3970d="wbsoft"]In dat geval kun je beter een klein scriptje ergens in je PATH neerzetten met de gewenste functionaliteit.[/quote:b2c2f3970d]Inderdaad. Het is /usr/bin/ssh, maar /usr/local/bin wordt eerder genoemd in mijn $PATH. Oplossing dus: mijn "wrapper" opslaan als /usr/local/bin/ssh en alle programma's die ssh aanroepen moeten (als ik het goed zie) eerst langs mijn "wrapper". Het alias heb ik dan helemaal niet meer nodig (sterker: dat zit dan in de weg ...) Motto: fröbelen kan met GNU/Linux erg leuk zijn![/quote:b2c2f3970d] je loopt zo alleen het risico dat programma's die afhankelijk zijn van ssh (of het weet-ik-waarvoor nodig hebben) f*cked up raken. More important!!! andere users die op die manier wellicht minder prettige dingen kunnen doen. (remedie: chmod 700 /usr/local/bin/ssh) een betere oplossing lijkt mij om in je homedir een directory bin aan te maken, daar al je 'personalized' scripts in zetten en die dir. voorin je PATH op te nemen Quote Link naar reactie
anoniem Geplaatst: 19 december 2003 Auteur Delen Geplaatst: 19 december 2003 [quote:902fdd3a86="Mithrandir"]een betere oplossing lijkt mij om in je homedir een directory bin aan te maken, daar al je 'personalized' scripts in zetten en die dir. voorin je PATH op te nemen[/quote:902fdd3a86]Yep! Dat had ik ook eigenlijk willen schrijven. Ik heb zoiets in mijn /etc/profile: [code:1:902fdd3a86]if test -d "${HOME}/bin" ; then export PATH="${HOME}/bin:${PATH}" fi[/code:1:902fdd3a86] Quote Link naar reactie
anoniem Geplaatst: 19 december 2003 Auteur Delen Geplaatst: 19 december 2003 Alweer bedankt voor de reacties, Mithrandir en wbsoft. Jullie waarschuwingen neem ik ter harte. Ik wijs evenwel op drie zaken: 1) de "wrapper" is extreem neutraal (hoop ik althans!). Wat er gebeurt, is dat ik check of het niet beter is of /usr/bin/ssh-add aangeroepen wordt voordat /usr/bin/ssh aangeroepen wordt. Beide programma's staan alle users op mijn systeem toch al ter beschikking. ssh-add wordt bovendien aangeroepen door het script en (dus?) met de bevoegdheden van de user die het script aanroept. 2) Tot nu toe heb ik in elk geval geen onverwachte dingen meegemaakt; kortom geen programma's die vreemd reageren. Maar ik zal goed opletten op onregelmatigheden. 3) Bovendien ben ik de enige gebruiker van het desbetreffende systeem: we hebben het hier over een laptop waarmee ik slechts zelf werk. Quote Link naar reactie
Aanbevolen berichten
Om een reactie te plaatsen, moet je eerst inloggen