Pagina 1 van 1

Werken met SSH Clients en SSH verbindingen

Werken met SSH Clients en SSH verbindingen
   2

SSH steeds vaker gebruikt omdat meer en meer apparaten Linux als basis nemen voor hun firmare en voor toegang op afstand (remote access) SSH gebruiken.

SSH, of te wel Secure SHell, is een veilige methode (door encryptie) om op afstand een shell (command-line) op een andere computer te openen zodat commando’s uitgevoerd kunnen worden op deze computer.

SSH vinden we op zo’n beetje ieder apparaat of computer welke op een Linux, Unix, of FreeBSD variant draait.
Een paar voorbeelden: een Raspberry Pi, Modem, DVR, Router, Satellite Receiver, Smart TV, cellphone, Media Players, een aantal Smart TV’s, WiFi SD-Kaarten, etc. etc.

Omdat een SSH verbindingen in steeds meer artikelen, die ik schrijf, gebruikt wordt, leek het me een goed idee om een generiek artikel m.b.t. SSH verbindingen te schrijven als referentie.




SSH op een QNAP

Op een QNAP kan het zijn dat je SSH of SFTP eerst aan moet zetten. Andere servers en systemen zullen iets vergelijkbaars hebben of handmatige wijzigingen nodig hebben.

Ga naar “Control Panel”  Network Services”  Telnet / SSH“, vink “Allow SSH Connection” aan en optioneel vink “Enable SFTP” aan. Klik vervolgens op de “Apply” knop. Dat is alles wat je nodig hebt om SSH aan te zetten.

SSH Client Gebruik

In dit artikel gaan we kijken naar een aantal methoden om een SSH Shell verbinding op te zetten m.b.v. een zogenaamde SSH Client …

SFTP, FTPS, SCP en SSH 

SSH, SFTP en SCP zijn volledig verbinden over een versleutelde (encrypted) verbinding.

SFTP (SSH File Transfer Protocol) is een veilig Bestand Uitwisseling Protocol (FTP of File Transfer Protocol) welke SSH gebruikt.
SFTP wordt gebruikt voor het interactief werken met bestanden (kopiëren, hernoemen,verwijderen, etc.).

SCP (Secure CoPy) is vergelijkbaar met SFTP en gebruikt ook SSH, maar is beperkt tot slechts bestandsoverdracht.

FTPS (FTP over SSL) is ook een File Transfer Protocol (FTP) protocol maar deze loopt over een SSL verbinding.
Hoewel FTPS vaak verward wordt met SFTP, FTPS heeft absoluut niets te maken met SFTP en beiden zijn niet compatible!
Data voor FTPS is ook versleuteld, echter met SSL.

Vergeet dus niet dat SFTP is geheel anders is dan FTPS!

SSH Client

Een SSH Client is het programma wat we nodig hebben op onze computer om die “andere” computer te bedienen op afstand.
N.b. Als we in dit artikel praten over een computer, dan bedoelen we hiermee iedere computer, server of apparaat welke met SSH benaderd kan worden.

SSH Client kunnen platform (besturingssysteem) speciefiek zijn:

 

Let op dat voor een SSH verbinding bepaalde basis informatie nodig is om toegang te krijgen:

  • Server: Vaak een IP-Adres of een computernaam, bijvoorbeeld: 192.168.1.100
  • Username: Jouw gebruikersnaam voor toegang tot de computer, bijvoorbeeld: admin
  • Password: Het bijbehorende wachtwoord, bijvoorbeeld: geheimwachtwoord

 

In sommige situaties heb je ook het IP Poort nummer nodig. Het standaard IP Poort nummer voor SSH is port 22 (TCP).

Web Browser Extensie voor Google Chrome (Cross Platform)

Moderne webbrowsers hebben vaak de optie om zogenaamde extensies toe toe voegen en geloof het of niet, maar voor een van de meest gebruikte webbrowsers, Google Chrome, heeft extensies die als SSH Client fungeren.
Ik hoor nu al verschillende gebruikers gillen: “ En FireFox dan? “.
Wel … geen van de extensies die ik vond voor FireFox (FireSSH bijvoorbeeld) werkte met de meest recente FireFox versie … maar misschien is er in de toekomst èèn die wel werkt. Even bij FireFox gaan kijken dus.

  Secure Shell is zo’n extensie voor Google Chrome SSH Client functionaliteit geeft (Cross platform). Je kunt het hier gratis downloaden.
Voordelen van Secure Shell zijn bijvoorbeeld dat het verbindingen onthoud – het slaat echter wachtwoorden niet op.
Secure Shell kan ook als snelkoppeling in the Google Chrome Bookmark Bar zodat het altijd eenvoudig te openen is.

Sluiten van de verbinding doe je eenvoudig weg door de tab te sluiten of in de meeste gevallen door “exit” te typen en op ENTER te drukken.

Twee of drie velden moete ingevuld worden om een verbinding op te zetten:
– In het bovenste brede veld, voeren we een “naam” in voor de verbinding, b.v. “Mijn Server” (zichtbaar als je later weer dezelfde verbinding wilt maken)
– De velden hier onder worden gebruikt voor gebruikersnaam en IP-Adres (of comuter naam)
– Je kunt de verbinding nu openen door op ENTER te drukken of door op de “[ENTER] Connect” knop te klikken – hierna zal meestal een wachtwoord gevraagd worden.

Google Chrome - Secure Shell - Opzetten van een verbinding

Google Chrome – Secure Shell – Opzetten van een verbinding

Google Chrome - Secure Shell - Voorbeeld verbinding

Google Chrome – Secure Shell – Voorbeeld verbinding

  FireSSH is ook zo’n cross-platform SSH Client voor Google Chrome en het lijkt iets vlotter te zijn dan Secure Shell. Je kunt het hier gratis downloaden.
Net als Secure Shell, zal FireSSH verbindingen onthouden maar ook hier zonder wachtwoord.
Wat ik initieel wel een nadeel vond van FireSSH is dat je niet geen snelkoppeling in de bookmark bar van Chrome kunt maken en in plaats daarvan dat je aangewezen bent op de “Chrome App Launcher” (precies waar ik op zat te wachten – nog een extra zinloze App Launcher).

FireSSH verbindingen verbreken kun je doen door FireSSH te sluiten op vaak door “exit” te typen gevolgd door drukken op ENTER.

Een aantal belangrijke velden:
– Links bovenin zie je een dropdown lijst waar je kunt kiezen voor een bekende verbinding of een nieuwe verbinding met “Create an account…” kunt aanmaken.
– “Account Name” is zodat je de verbinding een herkenbare naam kunt geven, b.v. “Mijn Server”.
– “Host” is het IP-Adres (of computer naam) van de server die je wilt benaderen.
– “Login” en “Password” zijn gebruikersnaam en wachtwoord op de computer die je wilt benaderen (wachtwoord wordt NIET onthouden).
– Een verbinding wordt vervolgens geactiveerd door op de “Connect” knop te klikken.

FireSSH Snelkoppeling Tip 

MacOS X:
De FireSSH App kan hier gevonden worden: ~/Applications/Chrome Apps/FireSSH.
Van daaruit kun je bijvoorbeeld een alias maken (op de Desktop of in the “Programma’s” map) of je kunt de App in de Finder Dock plaatsen.

Windows:
In de “Google App Launcherklik FireSSHmet rechts aan en kies “Create Shortcuts“. In het opkomende venster kies je vervolgens “Desktop” en/of “Taskbar“. Klik “Create” om de snelkoppeling(en) aan te maken.

Google Chrome - FireSSH - Opzetten van een verbinding

Google Chrome – FireSSH – Opzetten van een verbinding

Google Chrome - FireSSH - Voorbeeld verbinding

Google Chrome – FireSSH – Voorbeeld verbinding

SSH Client voor Windows

PuTTY is waarschijnlijk een van de meest gebruikte SSH Clients voor Windows. Je kunt de meest actuele versie gratis downloaden van de PuTTY website.
Goede alternatieven die je kunt overwegen zijn: MobaXTerm, FreeSSH, OpenSSH for Windows, WinSCP.

PuTTY

PuTTY kun je van Tweaking4All downloaden maar we raden, zoals gebruikelijk, aan om de meest actuele versie van de ontwikkelaars website to downloaden.

DOWNLOAD - Putty 

Platform: Windows
Bestand: putty_0.63.7z
Versie: 0.63
Omvang: 226.2 KiB
Datum: 18 jan 2014
 Download Nu 

In het start scherm kun je “gebruikersnaam@serveripadres“, in het “Host Name” veld invoeren om een verbinding op te zetten. Hierbij is “gebruikersnaam” jouw gebruikersnaam op de computer die je wilt benaderen, en “serveripadres” het IP-Adres van de computer die je wilt benaderen.

Optioneel kun je een naam aan de verbinding geven in het veld “Saved Sessions” en hierna op “Save” te klikken. Op deze manier kun je handig in te toekomst de verbinding opnieuw oproepen – zoals gebruikelijk wordt het wachtwoord niet opgeslagen.

Windows - PuTTY - Secure Shell - Opzetten van een verbinding

Windows – PuTTY – Secure Shell – Opzetten van een verbinding

Windows - PuTTY - Voorbeeld verbinding

Windows – PuTTY – Voorbeeld verbinding

SSH Client voor MacOS X

Although ports have been made of PuTTY, installation isn’t all that great (MacPorts offer is), but for SSH use MacOS X have better options.
As with Windows, several options are available, just to mention a few: iTerm2, CSSHX, JellyFissh, MacTerm.

Terminal SSH

Ik gebruik zelf altijd “ssh” in Terminal (“Programma’s Hulpprogramma’s Terminal“).
Het gebruik is eenvoudig:


ssh gebruikersnaam@computeripadres

Hier is “gebruikersnaam” jouw gebruikersnaam op de computer die je wilt benaderen, of bijvoorbeeld “root” of “admin”, en is “computeripaddress” het IP-Adres van de betreffende computer. Soms werkt computernaam ook, maar vooral met computers in het thuis netwerk merk ik dat vaak alleen het IP-Adres werkt – wat overigens ook een probleem kan zijn van mijn netwerk natuurlijk …

Als een wachtwoord nodig is, dan zal deze gevraagd worden.
Sluit de verbinding door “exit” te typen of door Terminal te sluiten.

MacOS X - Terminal SSH - Verbinding opzetten

MacOS X – Terminal SSH – Verbinding opzetten

MacOS X - Terminal SSH - Voorbeeld verbinding

MacOS X – Terminal SSH – Voorbeeld verbinding

SSH client voor Linux

Command-line

Linux gebruikers zullen vaak al gewend zijn aan het gebruik van SSH in een shell, net zoals we dat onder MacOS X zagen:


ssh username@serveripaddress

PuTTY

Tot mijn verassing is PuTTY ook beschikbaar onder Linux, maar het kan soms moeilijk zijn om het te vinden.
Voor Ubuntu gebruikers: Kies in het “Ubuntu Software Center” het programma “PuTTY SSH Client” en installeer het.
Mocht je geen Ubuntu gebruiker zijn, of je hebt geen toegang to de Ubuntu Software Center, probeer dan het volgende (ik moest het 2x uitvoeren voor het werkte):


sudo apt-get install putty

PuTTY kan daarna vanuit de command line gestart worden (type:  putty) of door de snelkoppeling “PuTTY SSH Client”.

In het start scherm voeren we server IP-Adres in het “Host Name” veld in om een verbinding te starten. Het voorvoegsel “gebruikersnaam@” blijkt niet te werken.

Optioneel kun je de verbinding een naam geven in het “Saved Sessions” veld, en door op “Save” te klikken kun je de verbinding opslaan voor toekomstig gebruik – ook hier wordt het wachtwoord niet opgeslagen.

Linux - PuTTY - Secure Shell - Opzetten van een verbinding

Linux – PuTTY – Secure Shell – Opzetten van een verbinding

Linux - PuTTY - Voorbeeld verbinding

Linux – PuTTY – Voorbeeld verbinding

Hoe SSH werkt

Voor SSH hebben we minstens 3 elementen nodig:

SERVER – de software/daemon op de computer die je wilt benaderen, welke SSH toegang opent
CLIENT – de software op de computer waarmee je de “andere” computer wilt benaderen

Om een SSH verbinding op te kunnen zetten hebben we een server (ontvanger) nodig. Op deze server draait software welke SSH aanvragen kan afhandelen en een verbinding kan opzetten – vaak is dit een service of een zogenaamde daemon. De andere kant van het verhaal is de SSH Client (aanvrager) welke je start op de computer waarmee je de verbinding wilt opzetten naar de “andere” computer.

Uiteraard is een gebruikersnaam en wachtwoord nodig om toegang te krijgen. In sommige systemen (Linux bijvoorbeeld) kan dit gebaseerd zijn op gebruikers van de computer in kwestie. Andere SSH Server programma’s kunnen zelf een lijst bijhouden van gebruikers. 

Gedurende initieel contact zullen sleutels worden uitgewisseld voor authenticatie (Publieke key – is dit werkelijk de server die we zoeken?) en encryptie van de verbinding (zodat niemand kan inbreken of afluisteren). De key voor authenticatie wordt vaak opgeslagen door de SSH client voor gebruik in de toekomst.

Zoals je ziet: Privacy/Beveiliging zijn hoofdpunten in SSH!

Let echter wel op dat deze uitleg sterk versimpelt is – het gehele proces en de mogelijke “handshake” is veel complexer dan dit. Een meer gedetailleerde uitleg kun je bijvoorbeeld hier vinden: SlashRoot.

Tip 

De computer die je op afstand wilt overnemen heeft vaak al een SSH Server geïnstalleerd staan (vaak het geval bij Linux gebaseerde apparaten) – maar het kan nodig zijn deze functie aan te zetten.

Zelf hanteer ik de vuistregel dat ik de SSH functie uitzet op de “server” als ik SSH niet gebruik.

Warning: Remote Host Identification has changed!

Een aantal SSH Clients, zoals eerder gezegd, slaat de authenticatie key van servers op voor authenticatie in de toekomst. Soms kan het echter gebeuren dat deze opgeslagen key niet meer correct is. Bijvoorbeeld als jouw server opnieuw geïnstalleerd is of omdat de RSS key op de server om een andere reden vervangen is.

Een melding zoals deze kan voorkomen:

WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!

IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!

Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that the RSA host key has just been changed.
....

N.b. een goede (maar Engelstalige) bron voor meer RSS key informatie is SSH Keys op SourceForge.

Merk op : Deze foutmeldingen vertellen je vaak ook hoe en waar je de key kunt vinden – lees het dus goed!

  Let op! Zorg ervoor dat er geen veiligheidsproblemen zijn die dit probleem hebben veroorzaakt.

SSH Keys verwijderen voor Google Chrome webbrowser extensies

Secure Shell

Als je het index nummer weet van de server keys (vaak weergegeven in de foutmelding) dan kun je de server verwijderen uit de lijst met keys via de JavaScript console, dit is echter niet alledaags werk voor de gemiddelde gebruiker.

Als je Secure Shell open hebt staan, klik dan met rechts bijvoorbeeld op de “[ENTER] Connect” knop en selecteer de “Inspect element” optie in het popup menu. Het venster zal nu “splitsen” in twee blokken en in de kop van het nieuwe block kiezen we nu “Console” – dit zal de JavaScript Console openen.

In de JavaScript console type je: term_.command.removeKnownHostByIndex(index) waarbij “index” vervangen moet worden door het index nummer van de foutmelding.

Mocht je niet zeker zijn van dit nummer, of gewoon alle keys wilt wissen, type dan: </span><span style="line-height: 1.5em;">term_.command.removeAllKnownHosts().

Zie ook de Secure Shell FAQ.

FireSSH

Sorry — Voor FireSSH kon ik niet vinden waar de keys worden opgeslagen, laat staan hoe je ze kunt verwijderen.

Windows PuTTY SSH keys verwijderen

PuTTY

Voor PuTTY onder Windows moeten we in de registry gaan kijken.

Open de registry (regedit) en ga naar HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\SshHostKeys .

Hier vindt je de SSH keys, en onder de “naam” kolom zie je de naam of IP-adressen van de server keys.
Verwijder de regel van de server die problemen gaf.

MacOS X SSH keys verwijderen

Terminal SSH

MacOS X “ssh” slaat de SSH Keys op in ~/.ssh/known_hosts .
Verwijder in dit bestand de regel die met de naam of IP-adres begint van de server die problemen veroorzaakt en verwijder de regel.

De nettere manier is om het als volgt te doen: ssh-keygen -R serveripadres  of ssh-keygen -R servernaam waarbij “serveripadres” is het IP adres van de server, of “servername” als de naam van de server. Uiteraard moet dit overeenkomen met hoe je SSH aanroept.

Linux SSH keys verwijderen

Command-Line SSH

De keys voor “ssh” kun je vinden in: ~/.shh/known_hosts .
De foutmelding geeft een nummer, bijvoorbeeld: Offending key in /home/user/.ssh/known_hosts:1 .
IIn dit voorbeeld is dat |1| – zoek deze regel en verwijder het.

De nettere manier is om het als volgt te doen: ssh-keygen -R serveripadres  of ssh-keygen -R servernaam waarbij “serveripadres” is het IP adres van de server, of “servername” als de naam van de server. Uiteraard moet dit overeenkomen met hoe je SSH aanroept.

PuTTY

Voor PuTTY onder Linux vinden we de SSH keys hier: ~/.putty/sshhostkeys
Verwijder in dit bestand de regel die met de naam of IP-adres begint van de server die problemen veroorzaakt en verwijder de regel.

Donatie Opties


Donaties worden zeer gewaardeerd, maar zijn zeker niet vereist. Donaties worden gebruikt voor het dekken van kosten voor web-hosting en project materialen, en eventueel voor een drankje of een snack. Voor wie al gedoneerd heeft: Hartelijk dank! Het is werkelijk geweldig om te zien dat men onze artikelen en applicaties waardeert.

Reacties


Er zijn 2 reacties welke je hieronder kunt lezen.
Je kunt jouw eigen opmerkingen plaatsen m.b.v. dit formulier, of een reactie op een opmerking plaatsen door op de "Reageer" knop te klikken.

  • 2 okt 2015 - 12:32 Reactie Link
    PingBack: www.tweaking4all.nl

    […] toegang te krijgen tot jouw QNAP via SSH, zal SSH aan moeten staan op jouw QNAP, zie dit SSH Artikel voor de […]

  • 13 mrt 2016 - 17:18 Reactie Link
    PingBack: www.tweaking4all.nl

    […] je deze log gaat bekijken, via een shell of SSH, dan kun je met het “tail” commando kijken wat de fout melding is door dit gelijk na […]



Jouw Reactie ...

Vriendelijk verzoek om hier geen lange teksten te plaatsen (zoals source codes, log files of config files). Gebruik daarvoor het Forum.

Deel met anderen:
*
*
Houd me op de hoogte van nieuwe reacties (email).
       Gebruik jouw RSS reader om reacties te volgen.


Tweaking4All uses the free Gravatar service for Avatar display.
Tweaking4All zal nooit jouw email adres met anderen delen.