SSH onder WindowsOp deze pagina:
Deze pagina is voornamelijk voor mezelf als naslagwerkje bedoeld... Wat is SSH?SSH staat voor Secure SHell. Maar wat is het eigenlijk? SSH is een communicatie-standaard (protocol) dat zorgt voor een versleutelde verbinding tussen twee computers, waarbij je vanaf de ene computer veilig op de andere in kunt loggen. Veilig betekent hier dat alle communicatie versleuteld (encrypted) is; zelfs het inlogproces. Dit is anders dan bij bijvoorbeeld het inloggen op je email-account: afhankelijk van je instellingen gaat hier je wachtwoord onversleuteld over het internet. Ook bied SSH heen en weer garanties dat jij (en de andere kant) ook bent wie je zegt dat je bent (authenticatie). Let op! SSH is zeer veilig als het goed is opgezet, maar als de zaak slecht is geconfigureerd of als je zwakke wachtwoorden gebruik biedt het iemand die binnen weet te komen weer mogelijkheden! SSH biedt een aantal mogelijkheden:
Client en serverHiertoe moet op beide computers een programma draaien, op de een de server en op de ander de cliënt: Meer (Engelstalige) info over SSH is te vinden op de SSH manual pages. Een uitgebreid boek er over: SSH, The secure Shell (the definitive guide) van O'Reilly.
Op Windows zijn er standaard andere mogelijkheden, zoals 'remote desktop' en 'hulp op afstand', die de noodzaak van besturing via SSH kleiner maken. Ook een VNC als TightVNC kan een goede vervanging zijn. Verschil met remote desktop is dat een SSH-verbinding een zelfstandige inlog doet, en niet meeloopt met de gebruiker achter de PC. Je bent dus onder een ander account ingelogd. De cliënt legt de verbinding naar de server, en samen zetten ze de encryptie op. SSH op WindowsOorspronkelijk uit de Unix/Linux-wereld (waar deze programma's meestal standaard zijn geïnstalleerd) zijn er ook op Windows (incl Vista) goede mogelijkheden.
WachtwoordenSSH heeft meerdere mogelijkheden om je te identificeren. Info over gebruik met keys? Zie HowTo SSH logins using keys (Engels). Aanmaken van sleutels in Ubuntu (of andere Linux-varianten)? Kijk eens op de
SSHOpenSSHKeys
pagina, komt in het kort neer op: Maar, pas op: zo aangemaakte files zijn niet direct compatible met PuTTY/PuTTYgen; je hebt de development versie van PuTTYgen nodig om deze keys naar PuTTY formaat om te zetten... Handig om keys van te voren te laden:
ssh-keygen -l -f
/etc/ssh/ssh_host_rsa_key (en net zo voor andere keys)
SSH op de LinkSys NSLU2 netwerk fileserverOvergegaan op Debian op mijn NSLU2, hier gebruik ik niet de openssh-server maar de meer lichtgewicht dropbear. Werkt ook prima! En met het pakket openssh-sftp-server heb je daar ook sftp access Ps: onderstaande tekst is wat verouderd; stamt nog uit de tijd dat ik geen Raspberry had... Grotelijnen kloppen echter nog steeds. Ik gebruik SSH met name om op afstand bij mijn samba file server op
de NSLU2 te kunnen. Ik heb mijn Linux NSLU2
'geopend' voor extra software packages met behulp van uNSLUng. Vervolgens heb ik het
NSLU2
openSSH package geïnstalleerd (' Wel heb ik voor de veiligheid de openssh configuratiefile wat
aangepast, bijvoorbeeld om alleen met public/private key files te werken en
niet met wachtwoorden ( Daarna mijn router aangepast zodat de gekozen poort wordt doorgesluisd naar
mijn NSLU2, en klaar (zie mij server pagina): ik kan
via internet veilig op mijn NSLU2 inloggen. Zelfs met
mijn Qtek9100 Windows Mobile mobieltje dank zij PocketPutty, en mijn Android phone:
ConnectBot. Gezien ik van mijn provider geen vast IP adres heb, heb ik een account bij DynDNS: kan inloggen via
SSH/Putty voorbeeldenSSH en LinuxSSH is meer gericht op Linux etc, hier is het ook standaard aanwezig. Om op
je cliënt (dekstop) ook grafische windows te kunnen openen (niet standaard
mogelijk onder Windows, zie verderop) moet je inloggen met de Een manier om dit vanuit Windows te doen is met Ubuntu in een virtual machine. Test met bijvoorbeeld
Zie ook: SSH tutorial for Linux Een lijst van een paar nuttige opties/config items etc voor SSH (voor de ssh server zie de sshd_config man page) Putty port forwarding:Om met Putty via een remote SSH server te linken naar een andere
remote server (bijvoorbeeld een simpele webserver): Connection » SSH »
tunnels; enable ' Tunneling (port forwarding) op LinuxAlleen maar een tunnel opzetten, geen terminal: de ssh -f -L2001:localhost:143 mailserver.example.com X server forwarding via SSH gateway (Linux)Je kan via ssh ook grafische programma's opstarten, draaien op de remote computer maar geven de output op de computer vanaf waar je bent ingelogd. Een voorbeeld: start het remote programma xclock, en geeft dit op je lokale computer weer (als X forwarding aan staat): ssh -f remotesystem.com xclock X11 Forwarding aanX11 forwarding aanzetten: zet in je In PuTTY: pas de configuratie aan: SSH -> X11 -> X11 Forwarding aankruisen Maar hoe nu dit te veilig doen via een NSLU2 als gateway? Je moet nu de X-programma's doortunnelen door de gateway naar de uiteindelijke lokale computer.
Aannemend dat de thuisnetwerk-PC (op ssh -2 -f -N -L 12322:192.168.1.112:22
<nslu_ssh_username>@<extern_ipaddress> xeyes is een mooie app om dit te testen. Wel twee ssh-verbindingen
over elkaar heen... Twee keer encryptie (een keer op de thuisPC, een keer op de
NSLU2), gaat vast niet sneller. Netter misschien via de xauth route?
Meer in Putty
SSH Multi-hop X11 Forwarding, O'Reilly's artikelen Connecting Through
a Gateway Host en SSH Port
Forwarding. Kan het met één ssh en dan xauth ( Inloggen met keyfile/passphrase op ssh vanuit Linux/UbuntuVreemd genoeg soms nog wat problemen om in te loggen met keyfile en
passphrase vanuit Ubuntu; ssh-add accepteert de keyfile dan wel, maar
inloggen gaat vervolgens nog steeds mis. Wat wel werkt is (met ssh -p <poortnummer> -i <keyfile> <user>@<remote> Samba via SSHVoor het veilig via het internet benaderen van je lokale file server kan je samba ook via SSH tunnelen. Zie hiervoor mijn samba pagina. VNC/Vinagre/remote desktop door een SSH-tunnelVNC/remote desktop via een reverse connectionSoms is de computer aan de andere kant achter een firewall. Lastig als je mensen met minder computerkennis op afstand wilt helpen; weinig kans dat zij de firewall kunnen onzeilen. Vergelijkbaar aan de Windows Ultra-VNC single-click oplossing kan je ook met Ubuntu een 'reverse VNC conection' opzetten, kijk bijvoorbeeld op de x11vnc oplossing op Ubuntu-Ubuntu single click (zonder SSH), of de Ubuntu VNC documentatie. Ik gebruik zelf nog de Windows UltraVNC (in Wine) als viewer op poort 5555;
aan de te helpen kant start je dan x11vnc met: Maar, wil je dit 'veilig' doen, dan kan je beter vanaf de andere kant een SSH-tunnel laten opzetten, en dan met een reverse port forward daarheen connecten. Hoe leg je dat aan de te helpen kant uit... ? Om een ander systeem op afstand te besturen heb je tools als een 'Remote
Desktop Viewer', zoals in het geval van Ubuntu: Vinagre.
(Applications » Internet » Remote Desktop Viewer). Deze kan ook via een
SSH-tunnel een verbinding opzetten, en hoeft dan niet zelf encryptie te
verzorgen. In het Vinagre connect-menu moet je hiervoor 'Use host as
a SSH tunnel' aanvinken, en daar de ssh-gegevens in de vorm
PS: de andere kant moet natuurlijk wel een VNC-server draaien zoals de
Gnome Remote Desktop Server (System » Preferences »
Remote Desktop); en deze zo ingesteld hebben dat deze bezoek toe
laat... File copy over SSHOm een file van/naar een SSH-beveiligde host te sturen kan je scp gebruiken.
Voorbeeld: ProblemenfreeSSHd lijkt (2009) nog behoorlijk te rammelen. Opzetten van accounts met elektronische sleutels is erg lastig (en mij niet gelukt); en met Putty krijg ik soms foutmeldingen. Ook de koppeling tussen de settings en de eigenlijke server lijkt niet altijd goed te lopen. Met PocketPutty lukt me nog niet om een verbinding op te zetten op mijn mobiele telefoon, wat naar een Linux sshd wel prima lukt (PocketPuTTY ziet wel de host dus firewall lijkt OK geconfigureerd, maar ik zie geen prompt om username/password, krijg een foutmelding, zelfs bij Blowfish of 3DES encryptie). freeSSHd altijd als administrator beheren! op de een of andere manier kan ik, als de service loopt, deze niet vanuit het freeSSHd window configureren; moet hem eerst via task manager afschieten (draait op verkeerde account?). Daarna geen problemen om te starten/stoppen, en instellingen worden goed overgenomen. SSH1/SSH2: er zijn twee versies van het SSH protocol, 1 en 2. Deze zijn niet compatibel, en 1 is zwaar verouderd. Meeste programma's tegenwoordig kunnen beiden aan, maar bijvoorbeeld de elektronische sleutels hebben een ander formaat. |
op mijn site |