Op afstand besturen van een tweede computer dankzij SSH


Op de vorige pagina "Inleiding tot Netwerking" hebben we dankzij Netcat en Telnet een verbinding gemaakt tussen twee computers, die toeliet tekstberichtjes direct door te sturen. Dat is best interessant maar het zou leuker zijn als we zouden kunnen werken in een bestand dat zich op die tweede computer bevindt, of zelfs dat we daar een programma zouden kunnen opstarten, bij voorkeur een programma dat helemaal niet te vinden is op de PC waar we achter zitten.
Dergelijke zaken kunnen op verschillende manieren maar we willen ons beperken tot voorbeelden die voor iedereen haalbaar zijn en die bovendien van praktisch nut kunnen zijn in ons dagelijks doen.
We hadden het in die vorige pagina reeds even over "Telnet". Dat protocol is inmiddels verouderd en kan perfect vervangen worden door SSH. Dat staat voor Secure Shell. Het is een netwerkprotocol waarbij de data versleuteld worden doorgestuurd. Dat was bij Telnet niet het geval. SSH laat niet alleen toe commando's op afstand uit te voeren, ("remote commandline") maar evengoed grafische programma's op te starten.
Ook hier is er weer sprake van een server-programma en een client-programma. De PC met het server gedeelte is weer verondersteld aan dienstverlening te doen en de client mag daar opnieuw van profiteren.
Doordat het om een beveiligde manier van werken gaat komt er nogal wat "auhtenticatie en verificatie van sleutels" bij zien, maar om het niet nodeloos ingewikkeld te maken zullen we gebruik maken van praktische voorbeelden.
Neem eerst via de Midnight Commander een kijkje in de map /etc/ssh. Staan daar alleen de bestanden moduli en ssh_config, dan beschik je over het clientgedeelte. Staan daar nog een vijftal bestanden waarvan het laatste sshd_config noemt, dan is ook het servergedeelte voorzien.
Standaard installeert Ubuntu alleen het clientgedeelte, dat is omdat mogelijke "indringers" de mooie mogelijkheden van een ssh-server niet zouden kunnen misbruiken. Veel andere distributies nemen dat risico erbij, en bij een tweede PC die weinig op het internet komt heeft het ook weinig belang.

Omdat de toestand enigzins verschilt naargelang de linuxversie op de tweede computer (de "remote PC"), waarop we de ssh-server willen draaien, zullen we een drietal verschillende situaties afzonderlijk bezien aan de hand van voorbeelden.

Voorbeeld 1: we hebben een computer waarop Ubuntu is geinstalleerd en een tweede waar Kubuntu op staat. Op beide komt eenzelfde gebruikersnaam voor, liefst met hetzelfde login-paswoord. Op de tweede (we noemen hem comp2), installeren we via Adept Manager het servergedeelte: "openssh-server". Na heropstarten is deze klaar en kunnen we een eerste poging wagen.

Kijk eerst eens op comp2 of hij wel degelijk een IP-adres kreeg toegewezen vanwege de router en noteer het. (typ sudo ipconfig in een terminal-shell en kijk of 192.168.1. ...  er in voorkomt)
Ga nu naar comp1, open een terminalvenstertje en typ ssh 192.168.1.3 (indien dat het IPadres is van comp2). Bij een eerste verbinding met de server kan de client hem niet met zekerheid identificeren en je zal een paar lijnen te zien krijgen die eindigen met: Are you sure you want to continue connecting (yes/no)? Antwoord gewoon met yes en je zal zien dat je verbonden wordt met comp2 waar je nu het gebruikerspaswoord moet geven om in te loggen.
Daarna zit je wel degelijk comp2 te bedienen vanop comp1. Typ b.v. eens mc en aan de "inhoud" die te voorschijn komt, zal dat duidelijk worden. Dankzij de functies van de Midnight Commander kan je al een en ander aanvangen met je bestanden op comp2 maar het is leuker werken in een grafische mode, daarom gaan we er terug uit door eerst de mc af te sluiten (via F9 en --> Bestand --> Afsluiten) en herbeginnen. Deze keer geven we de parameter X mee, die zal ervoor zorgen dat ook het grafisch scherm van comp2 kan worden overgenomen.
Typ dus ssh -X 192.168.1.3 en deze tweede keer zal je direct verbonden worden. Typ, na ingeven van het paswoord, nu nautilus &  en je krijgt je vertrouwde bestandsoverzichten te zien. (Dat ampersand-teken achter Nautilus is voor "draaien op de achtergrond" en laat je toe nog een tweede, of derde programma op te starten.) Sluit nautilus terug af en typ nu firefox &  de brouwser zal opstarten en als de router aan het internet hangt, kan je direct surfen vanop comp2 terwijl je eigenlijk achter het scherm zit van comp1! Nog leuker is het als je konqueror & opstart en daarmee surft, want konqueror staat helemaal niet op comp1.
Voor andere programma's moet je enigszins anders tewerk gaan, omdat je feitelijk de naam moet geven van het uitvoerbaar bestand van het programma in kwestie. Zo heet de "executable" van de OpenOffice-writer in feite  oowriter, voor het rekenblad is dat oocalc, voor powerpoints ooimpress en voor het tekenprogramma oodraw. Als een bepaald programma op comp2 niet wil opstarten is het mogelijk dat het uitvoerbaar bestand een naam heeft die je nog niet kent, of dat het zich in een map bevindt die niet in het "path" staat en dan kan het even zoeken worden. Hoofdzaak is echter dat je nu tenminste 's winters kan werken op de computer in de koude shack, vanop de PC in de warme keuken, Hi!
Inloggen als een andere gebruiker op comp2 kan ook, mits je zijn paswoord kent. Je adresseert dan als:
ssh [email protected] en geeft het juiste paswoord.

Voorbeelden 2 en 3: Vanop computer1 programma's draaien die zich alleen op een LiveCD bevinden die opgestart is op computer2

Er bestaan een hele reeks LiveCD versies in Linux maar we zullen er twee van de meest bekende nemen, nl. Knoppix, van Klaus Knopper, de man die met live CD's is begonnen en DSL, de onvoorstelbaar kleine mini-linux-versie van John Andrews en Robert Shingledecker en oorspronkelijk bedoeld om te passen op een "Bootable business card"! DSL staat voor "Damn Small Linux" en bedraagt slechts 50 Mb!!! Voor wie het .iso bestand nog niet bezit: onmiddellijk downloaden en op Cd branden. (Mag een kleintje zijn van 8 cm diameter!!) http://damnsmalllinux.org/download.html>

Eerste geval: Met comp1 en ubuntu als client, verbinding zoeken met comp2 waarop de DSL-LiveCD draait (getest met versie 4.1)
 
Op die andere PC onderbreken we het opstarten even om in de bios te komen (Del, F2.. ) en dan de LiveCD erin te plaatsen.
Het opstarten van DSL is automatisch en kompleet t.e.m. de internetverbinding, Je ziet bovendien het IP adres van comp2 aan de rechterzijde.
Start nu de SSHD-server via  --> System --> Daemons --> SSH --> Start
of via Control panel (icoontje op balk links onderaan) en het "drukknop-balkje" SSH-server.
De standaard-gebruiker noemt gewoon "dsl" en heeft sudo-rechten, je maakt er best een paswoord voor met sudo passwd dsl en een ernstig paswoord b.v pa3ssb/m (tweemaal)
Dan ga je naar comp1, open een terminal en typ ssh -X [email protected] en als het een eerste verbinding betreft met dat IP-adres zal je, zoals we hogerop reeds vertelden, een paar lijnen te zien krijgen die eindigen met: Are you sure you want to continue connecting (yes/no)? Antwoord gewoon met yes en je zal zien dat je verbonden wordt met comp2 waar je nu het gebruikerspaswoord moet geven om in te loggen.
Je zal zien dat je nu ingelogd bent als dsl@dsl en wat je nu laat uitvoeren gebeurt dus op comp2.
Start liefst programma's op die zich niet op comp1 bevinden en laat ze op de achtergrond draaien door er & achter te plaatsen, anders kan je geen tweede grafisch programma openen. v.b. beaver &, siag &, emelfm &, dillo &, met dit laatste kan je al direct het internet op via comp2 (zie foto)
Programma's dienen op de gewone manier te worden afgesloten en in de terminal-shell kan je met exit de verbinding verbreken.

Hieronder zie je een prachtig voorbeeld van resultaat: vanuit de ubuntu-desktop op comp1 zit je te werken op comp2 in zowel slag (het rekenblad van DSL), als in emelfm, (een file-manager), en terzelfdertijd ben je aan het internetten met de snelle dillo-browser!
 
ubuntu_dsl     <--- click voor groter beeld


Tweede geval
: Verbinding met comp2 waar de Knoppix LiveCD op draait, (getest met versie van jan.07)

Opstarten zoals met de LiveCD van DSL hierboven, je moet wel even op enter drukken om hem op gang te brengen. Dat geeft je de kans om een boot-optie mee te geven b.v. "knoppix lang=nl". (Nederlands)
Eenmaal volledig opgestart moet je hier ook weer de SSH-server opstarten: --> Knoppix --> Services --> Start SSH server
Om het IPadres te kennen moet je hier wel even in een terminal ifconfig typen

Maak weer een paswoord voor gebruiker "knoppix" door in een terminal-shell te typen sudo passwd knoppix en geef een ernstig paswoord b.v pa3ssb/m (tweemaal)
contact zoeken is hier: ssh -X [email protected]
Zie hierboven, bij DSL voor het vervolg.
Indien je vroeger al een SSH verbinding hebt gemaakt met datzelfde IP-nummer maar in andere omstandigheden (b.v. andere LiveCD of vaste installatie) zal het programma waarschuwen dat er iets abnormaals gaande is en dat klopt, het is immers niet de juiste sleutel voor dat IP-adres. Je kan dat oplossen  door in de Map ./ssh van je werkpc (comp1) het bestand known.hosts leeg te maken of tijdelijk te verplaatsen naar ergens anders.
Het meest indrukwekkend is hier ook weer het opstarten van programma's die zich niet in ubuntu op je comp1 bevinden, b.v. specifieke KDE programma's zoals: kate &, kcalc & en konqueror &
Op de foto hieronder zie je hoe de zojuist genoemde programma's runnen met het ubuntu-bureaublad als achtergrond. Met de Konqueror als browser zitten we zelfs op de UBA website.

ubuntu_knoppix     <----  click voor een groter beeld


In de voorbeelden hierboven hadden we het geluk dat de netwerkkaart, ook wel network adapter, LAN Adapter, ethernet card, of NIC (network interface card) genoemd, automatisch werd herkend en geactiveerd. Dat is niet altijd het geval. In de afgelopen jaren ging het meestal om een afzonderlijke kaart die op het moederbord stak in een pci-slot of zelfs in een isa-slot. Bij oudere laptops was het dikwijls nodig een PCMCIA-netwerkkaart in te pluggen. Tegenwoordig is de netwerk interface "on board" en dikwijls met draadloze optie.
Hoe dan ook, je kan in omstandigheden verkeren dat je niet direct met je lokaal netwerk of het internet verbonden blijkt omdat de adapter niet geactiveerd is.
Hoe stel je dat vast?
Wanneer je in een terminal-shell het commando ifconfig intypt en je ziet als enig internet adres inet adr: 127.0.0.1 = local loopback (lo) dan is er geen ethernet interface actief.
Stel dat het een oudere computer betreft waarop je de linuxversie Kanotix had geinstalleerd en die je nu als SSH-server wil laten werken. Ga dan naar --> Kanotix --> Configure --> Netwerk/internet --> Network card configuration --> root paswoord --> use DHCP (yes).  Hiermee wordt de LAN-verbinding opgestart. Als je nu nogmaals ifconfig intypt zal je, als je een router gebruikt, een inet addr zien zoals 192.168.1.3 naast "eth0"
De SSHserver wordt geactiveerd met --> Kanotix --> Configure --> Services --> Start SSH server
De rest kan dan weer verlopen zoals in de eerder beschreven voorbeelden.



ONLs8_1


Inleiding          Vorige pagina           Volgende pagina