Ubuntu: de perfecte desktop – Verbindingen (SSH)

Dit artikel is onderdeel van de reeks Ubuntu: de perfecte desktop. Lees (als je dat nog niet gedaan hebt) eerst het artikel Ubuntu: de perfecte desktop – Introductie, voordat je dit artikel leest.

Na de verbindingstypen netwerk, Bluetooth, Samba en NFS besproken te hebben is dit het laatste verbindingstype: SSH.

Wat is SSH

SSH staat voor Secure SHell en is een protocol uit de toepassingslaag van de TCP/IP-protocolgroep waarmee wachtwoorden en data met encryptie (versleuteling) over het netwerk worden verstuurd. SSH vervangt oudere protocollen zoals telnet, rlogin, en rsh/rexec door een veilige variant daarvan.

SSH werkt met een client (ssh) en een server (sshd; Secure SHell daemon). Wil je met SSH werken dan heb je beide nodig.

Installatie van SSH

Voor het installeren van SSH gaan we OpenSSH gebruiken. OpenSSH is een open source versie van SSH. Het bevat veilige “tunneling” mogelijkheden, verschillende authenticatiemethoden en het ondersteunt alle SSH protocolversies.

Standaard heeft Ubuntu de SSH client al geïnstalleerd. De client is de machine waarop je de verbinding gaat leggen naar een servermachine. We moeten dus alleen nog de SSH server op de servermachine installeren. Deze servermachine kan ook een andere client zijn, waardoor deze client als server fungeert. Dit doen we via het Ubuntu softwarecentrum.

  1. Ga op de servermachine naar Toepassingen –> ‘Ubuntu Softwarecentrum’.
  2. Zoek in het Softwarecentrum venster naar de OpenSSH server door rechtsboven in het venster in het zoekveld openssh-server in te vullen.
  3. Klik op ‘secure shell (SSH) server, for secure access from remote machines’ en klik vervolgens op de Installeren button. De OpenSSH server zal nu worden geïnstalleerd.

Tijdens de installatie van de OpenSSH server wordt deze automatisch gestart.

Zodra de server actief is kan deze worden gebruikt door verschillende programma’s op de client of voor het opzetten van een beveiligde tunnel tussen de client en de server.

Clientprogramma’s

Voorbeelden van clientprogramma’s zijn:

  • Toepassingen –> Internet –> ‘Werkplek op afstand’. Kies bij verbinden voor SSH als protocol. Je komt dan in de terminal modus op de servermachine.
    Remote desktop wordt in een later hoofdstuk besproken.
  • Locaties –> ‘Verbinden met server…’. Kies SSH als Servertype. Je kan nu SFTP (secure FTP) gebruiken.
  • FileZilla (apart te installeren). FilleZilla bevat SFTP (secure FTP).
  • Telnet.
  • Secpanel: SCP (secure copy).

Een SSH-tunnel opzetten

Naast het gebruik met verschillende clientprogramma’s kan je ook een tunnel opzetten voor het forwarden van poorten waar servers op luisteren. Je kan dan een remote server over het internet benaderen alsof hij op je eigen machine staat. Dit gebeurt veilig door de SSH-tunnel met encryptie. Bijvoorbeeld een vnc-server (remote desktop), een ftp-server of een e-mailserver. De netwerkpoort waarop de server luistert wordt gekoppeld aan dezelfde netwerkpoort op de clientmachine. Dit heet port forwarding. Op een lokaal netwerk heb je tunneling niet nodig. Voorwaarde is wel dat je achter een firewall zit, anders kunnen anderen nog steeds alles zien.

De verbinding tussen een SSH client en server is een beveiligde tunnel. Het gemakkelijkst om zo een tunnel op te zetten is met gSTM (Gnome SSH Tunnel Manager).

Installeren van gSTM

Het creëren van een tunnel met gSTM is zeer eenvoudig, maar daarvoor moeten we wel eerst gSTM installeren.

  1. Ga op de clientmachine naar Toepassingen –> ‘Ubuntu Softwarecentrum’.
  2. Zoek in het Softwarecentrum venster naar gSTM door rechtsboven in het venster in het zoekveld gstm in te vullen.
  3. Klik op gSTM en klik vervolgens op de Installeren button. gSTM zal nu worden geïnstalleerd.

Creëren van een tunnel

  1. Ga naar Toepassingen –> Internet –> gSTM
  2. Klik in het ‘SSH Tunnel Manager’ venster op de Toevoegen button.
  3. Vul in het SSH Tunnel toevoegen venster een naam in voor de nieuwe tunnel en klik op de OK button.
  4. Nu kunnen we in het ‘Tunnel proporties’ venster de eigenschappen van de tunnel gaan specificeren. We moeten de volgende velden invullen:
    • Login: De gebruiker waarmee je op de servermachine moet inloggen.
    • Host: De naam of IP-adres van de servermachine.
    • Port: Standaard luistert SSH op poort 22 voor binnenkomende verbindingen, maar als de servermachine een andere poort gebruikt dan moet je die andere poort hier opgeven.
    • Privkey: Hier kan je de private sleutel specificeren. Dit is een verwijzing naar het bestand ~/.ssh/id_rsa (voor zover ik weet, want het staat nergens beschreven). De ~ staat voor de home folder van de gebruiker. Als je geen private sleutel gebruikt, dan kan je dit veld leeg laten.
    • Port redirection: Het forwarden van een poort. Hieronder zie je een voorbeeld van port forwarding van de FTP poort 21.

      Normaal specificeer je waar localhost staat het IP-adres van de servermachine, maar gezien localhost zoiets als jezelf betekent, weet de servermachine dat hijzelf bedoeld wordt.
      Let op: Poorten lager dan 1024  hebben root rechten nodig.

    Klik op de OK button.

  5. Klik terug in het ‘SSH Tunnel Manager’  venster op de nieuwe tunnel en klik vervolgens op de Start button. De allereerste keer zal er om een (RSA-)sleutel (Rivest-Shamir-Adleman) gevraagd worden.

    Bevestig de vraag in het OpenSSH venster met yes en klik op de OK button. Vul het paswoord van de gebruiker waarmee je inlogt op de servermachine in en kijk of de verbinding wordt geopend.
    NB. Het kan zijn dat het de allereerste keer niet werkt. Geen paniek, probeer stap 5 dan nog eens.

Je hebt de tunnel niet nodig als je gewoon met clientprogramma’s (zoals SCP en SFTP) wilt werken die al SSH ondersteunen. Het verbinden met een SSH-server is voldoende. Dit gebeurt automatisch door het clientprogramma.

TIP

Je kan grafische programma’s op de servermachine draaien en de uitvoer op je eigen computer krijgen.  Dit zonder een remote desktop te gebruiken. Dit doe je als volgt:

Open een terminalvenster en voer het commando ssh -C -X <gebruiker op servermachine>@<IP-adres servermachine> gnome-terminal uit.
Het terminalvenster van de servermachine wordt nu geopend en je kan nu alle commando’s (zoals nautilus) uitvoeren om programma’s op de servermachine te draaien.

Gerelateerde artikelen:

Zie Ubuntu: de perfecte desktop – Introductie voor de complete inhoud van deze artikelenreeks.

3 gedachten over “Ubuntu: de perfecte desktop – Verbindingen (SSH)

  1. Hallo Leo,

    Leuke serie dit. Gebruik al jaren Linux varianten maar probeer altijd te kijken hoe andere mensen dingen aanpakken zodat ik er iets van kan leren.

    Naar aanleiding van dit stukje heb ik een gerelateerde vraag. Ik probeer m.b.v. gSTM een tunnel op te zetten om via FoxyProxy een website te bekijken. Dit werkt prima vanaf de command line door

    “ssh -D port home-user@home-host”

    in te geven. Ik krijg het alleen niet voor elkaar om dit met gSTM te doen. Enig idee hoe dit op te zetten?

    Schrijf ze!

Vragen, opmerkingen en meningen over dit artikel kan je hier kwijt:

Fill in your details below or click an icon to log in:

WordPress.com logo

Je reageert onder je WordPress.com account. Log Out / Bijwerken )

Twitter-afbeelding

Je reageert onder je Twitter account. Log Out / Bijwerken )

Facebook foto

Je reageert onder je Facebook account. Log Out / Bijwerken )

Verbinden met %s